NQ Hourly Retracements - 12y Stats with LevelsHour Stats with Levels - TradingView Indicator Description
IMPORTANT: NQ FUTURES ONLY
This indicator is specifically designed for and calibrated to NQ (Nasdaq-100 E-mini) futures only. The statistical data is derived exclusively from 13 years of NQ price action (2013-2025). Do not use this indicator on any other asset, ticker, or market as the statistics will not be applicable and may lead to incorrect trading decisions.
Overview
"Hour Stats with Levels" is a statistical analysis indicator that provides real-time probability-based insights into hourly price behavior patterns. The indicator combines historical pattern recognition with live price action to help traders anticipate potential sweep and reversal scenarios within each trading hour.
Originality and Core Concept
This indicator is based on a comprehensive statistical analysis of 12y years of 1-minute NQ futures data, examining a specific price pattern: when an hourly candle opens inside the previous hour's range. Unlike generic support/resistance indicators, this tool provides hour-specific, context-aware probabilities based on 30,000+ historical occurrences of this pattern.
The originality lies in three key areas:
Pattern-Specific Statistics: Rather than applying generic technical analysis, the indicator only activates when the current hour opens within the previous hour's range, providing relevant statistics for this exact scenario.
Context-Aware Probabilities: Statistics are differentiated based on whether the current hour opened above or below the previous hour's open, recognizing that bullish and bearish opening contexts produce different behavioral patterns.
Comprehensive Retracement Tracking: The indicator tracks four independent retracement levels after a sweep occurs, showing the probability of price returning to: the swept level itself (90+% probability), the 50% level, the current hour's open, and the opposite extreme.
How It Works
The Core Pattern
The indicator monitors a specific price structure:
Setup Condition: The current hourly candle opens inside (between) the previous hour's high and low
Sweep Event: Price then breaks above the previous high (high sweep) or below the previous low (low sweep)
Retracement Analysis: After a sweep, the indicator tracks whether price retraces to key levels
Statistical Foundation
The underlying analysis processed 1-minute bar data from 2013-2025, identifying every instance where an hourly candle opened inside the previous hour's range. For each occurrence, the system tracked:
Whether the high, low, or both were swept during that hour
The distance of the sweep measured as a percentage of the previous hour's range
Whether price retraced to four key levels: the swept level, the 50% point, the current open, and the opposite extreme
These measurements were aggregated for all 24 hours of the trading day, with separate statistics for bullish contexts (opening above previous open) and bearish contexts (opening below previous open), creating 48 unique statistical profiles.
Sweep Distance Percentiles
The "reversal levels" are drawn based on historical sweep distance distributions:
25th Percentile: 75% of historical sweeps were larger than this distance. This represents a conservative reversal zone where smaller, contained sweeps typically reverse.
Median (50th Percentile): The midpoint of all historical sweep distances. Half of all sweeps reversed before reaching this level, half extended beyond it.
75th Percentile: Only 25% of sweeps extended beyond this distance. This represents an extended sweep zone where price has historically shown exhaustion.
For example, if the previous hour's range was 20 points and the median high sweep distance is 40% of range, the median reversal level would be placed 8 points above the previous high.
How to Use the Indicator
Sweeps were calculated using 1m data - as such, it's recommended to use the indicator on a 1min chart
Visual Components
Hour Delimiter (Gray Vertical Line)
Marks the start of each new hour
Helps identify when new statistics become active
Sweep Markers
Green "H" label: High sweep has occurred this hour
Red "L" label: Low sweep has occurred this hour
Markers appear on the exact bar where the sweep happened
Target Levels (Blue Lines)
Prev Open: Previous hour's opening price
Prev High: Previous hour's highest price (sweep target)
Prev Low: Previous hour's lowest price (sweep target)
Prev 50%: Midpoint of previous hour's range
Current Open: Current hour's opening price (key retracement target)
Reversal Levels (Purple Dashed Lines)
Positioned beyond the previous high/low based on historical sweep percentiles
Three levels above previous high (for high sweeps)
Three levels below previous low (for low sweeps)
These represent statistically-derived zones where sweeps typically exhaust
The Statistics Table
The table dynamically updates each hour and displays different statistics based on whether the current hour opened above or below the previous hour's open.
Status Row
Shows current state: waiting for sweep, or which sweep(s) have occurred
If waiting, indicates which sweep is more probable based on historical data
SWEEP PROBABILITIES Section
High Sweep: Historical probability (%) that price will sweep the previous high this hour
Low Sweep: Historical probability (%) that price will sweep the previous low this hour
Both Sweeps: Historical probability (%) that price will sweep both levels this hour
These probabilities are derived from counting how many times each pattern occurred in similar historical contexts. For example, "High Sweep: 73.18%" means that in 73.18% of historical occurrences where the hour opened in this same context (same hour of day, same position relative to previous open), price swept the previous high before the hour closed.
AFTER HIGH SWEEP → Section
These statistics activate only after a high sweep has occurred. They show the probability of price retracing to various levels:
→ Prev High: Probability that price returns to (or below) the level it just swept. This is typically 90%+ because sweeps often act as "false breakouts" or liquidity grabs before reversal.
→ 50% Level: Probability that price retraces at least halfway back into the previous hour's range. This represents a moderate retracement.
→ Current Open: Probability that price retraces all the way back to where the current hour opened. This indicates a complete reversal of the sweep move.
→ Prev Low: Probability that price retraces entirely through the previous range to touch the opposite extreme. This represents a full reversal pattern.
AFTER LOW SWEEP → Section
Mirror of the above, but for low sweeps:
→ Prev Low: Retracement to the swept low level (90%+ probability)
→ 50% Level: Retracement to middle of range
→ Current Open: Full retracement to current hour's open
→ Prev High: Complete reversal to opposite extreme
Important Note on Retracement Statistics: These percentages are tracked independently. A 90% probability of returning to the swept level doesn't mean there's only a 10% chance of deeper retracement. Price can (and often does) retrace through multiple levels sequentially. The percentages show how many times price reached at least that level, not where it stopped.
Trading Applications
Anticipating Sweeps
When an hour opens inside the previous range, check the probabilities. If "High Sweep: 70%" and "Low Sweep: 30%", you know there's a 70% historical likelihood of an upside sweep occurring this hour. This doesn't guarantee it will happen, but provides statistical context for potential setups.
Reversal Trading
The most reliable pattern in the data is the 90%+ retracement probability to swept levels. When a sweep occurs, traders can anticipate a retracement back to at least the swept level in the vast majority of cases. The reversal level percentiles help identify where sweeps may exhaust.
Position Management
The retracement probabilities help manage existing positions. For example, if you're long and a high sweep occurs, you know there's a 90%+ chance of at least some retracement to the swept level, which might inform profit-taking or stop-loss decisions.
Confluence with Current Open
The "Current Open" retracement statistics (typically 60-70%) highlight the magnetic quality of the hour's opening price. After a sweep, price frequently returns to test this level.
Customization Options
The indicator offers extensive visual customization:
Toggle on/off: hour delimiters, sweep markers, target levels, reversal levels, statistics table
Customize colors, line widths, and styles for all visual elements
Adjust label sizes and table position
Show/hide individual target levels and reversal percentiles
Limitations and Considerations
Pattern-Specific: The indicator only provides statistics when the current hour opens inside the previous hour's range. If the hour opens outside this range (gaps up or down), the statistics are not applicable.
Historical Probabilities: The percentages represent historical frequencies, not predictions. A 70% probability means it happened 70% of the time historically, not that it will definitely happen 7 out of 10 times going forward.
NQ-Specific Calibration: All statistics are derived from NQ futures data. Market behavior, volatility, and patterns differ across assets.
Hour-Specific Behavior: Different hours show dramatically different statistics. For example, the 9 AM EST hour (market open) shows much higher sweep probabilities (80%+) than the 5 PM EST hour (30-50%) due to differing liquidity and volatility conditions.
No Guarantee of Execution: While a 90% retracement probability is high, it means 10% of the time, price did NOT retrace. Always use proper risk management.
Technical Notes
The indicator uses hourly timeframe data via request.security() to determine previous hour values
Sweep detection occurs in real-time on the chart's timeframe
Statistics are hardcoded from the comprehensive backtested analysis (not calculated on-the-fly)
The indicator stores static values at the start of each hour to ensure consistency as the hour progresses
All percentage values are rounded to one decimal place for clarity
This indicator provides a statistically-grounded framework for understanding hourly price behavior in NQ futures. By combining real-time pattern detection with comprehensive historical analysis, it offers traders probabilistic insights to inform decision-making process within the specific context of each trading hour.
Search in scripts for "high low"
Opening Power Bar Strategy (Trade Your Edge)💎 GENERAL OVERVIEW:
The Opening Power Bar Strategy indicator identifies high-momentum “Power Bars” during the first 60 minutes of the New York session and generates Long/Short signals using levels from the pre-market session. The indicator plots Stop-Loss and three Take-Profit levels, manages dynamic trailing stop-loss logic (optional), displays pre-market levels, and supports alerts.
This indicator was developed by Flux Charts in collaboration with Steven Adams (Trade Your Edge).
🔹What is the purpose of the Opening Power Bar Strategy?:
The purpose of the Opening Power Bar Strategy is to trade the most active and meaningful part of the trading day, the opening move. It’s designed to take advantage of the volume and volatility that happens right after the market opens, when traders react to overnight news and pre-market movement. The indicator helps identify when that early move has real strength by looking for a large, decisive candle (a Power Bar) forming around key pre-market levels. Once it detects one, it builds a full trade plan automatically with entry, stop-loss, and take-profits.
🔹Why are signals only during the first 60 minutes?:
Most of the day’s total trading volume happens within the first 60 minutes after the market opens. This period usually sets the high or low of the day and defines the bias: whether the market will trend or stay in a range. After this first hour, volume and volatility typically decrease, and price movement becomes less consistent.
🔹What’s the theory behind the Opening Power Bar Strategy?:
The Opening Power Bar Strategy is built on a simple principle: the first hour after the market open sets the tone for the rest of the day. This period consistently shows the highest trading volume, as traders react to overnight news, economic data releases, pre-market movements, etc.
These early reactions often establish the day’s high/low, revealing where buyers or sellers are strongest. When a large, decisive candle (a Power Bar) forms during this time near the pre-market high or low, it confirms that one side is taking control. The pre-market high and low define the range that institutions and short-term traders had already reacted to before the market open. Thus, when a Power Bar forms near one of these levels during the first hour, it often marks the start of a breakout or rejection that shapes the rest of the session.
🎯 OPENING POWER BAR STRATEGY FEATURES:
The Opening Power Bar Strategy indicator includes 5 main features:
Power Bars
Pre-Market High / Low / Mid Levels
Long / Short Signals + Risk Management
Simple Moving Average (SMA)
Alerts
1️⃣ Power Bars:
🔹What are Power Bars?:
Power Bars are large, high-momentum candles that show strength in one direction of the market. They form when a candle’s body (the distance between open and close) dominates most of the candle’s total range (the distance between high and low), meaning price moved strongly in one direction with little to no pullback. To qualify, the candle must also be large relative to nearby candles. This size difference confirms that the candle is a true burst of momentum. In short, Power Bars reveal where real strength has just entered the market and where momentum is most likely to continue.
🔹How to interpret and use Power Bars:
When a Power Bar forms, it signals that price just made a strong directional move with little to no pullback. Traders can use these bars to identify momentum shifts and potential trade setups during the opening session.
A bullish Power Bar means buyers controlled the entire candle, often marking the start of upward momentum. A bearish Power Bar means sellers were in control the entire candle, often signaling the start of downwards momentum. In the Opening Power Bar Strategy, these candles are only used for signals when they appear within the pre-market high and low range. Their location relative to the pre-market midline determines direction bias:
Bullish Power Bars forming near the pre-market low can signal potential long opportunities.
Bearish Power Bars forming near the pre-market high can signal potential short opportunities.
🔹How are Power Bars identified?:
Power Bars are detected and confirmed only after the candle closes, ensuring that the full candlestick body and range can be measured. The indicator does not repaint or change past bars. Once a Power Bar is confirmed, it stays fixed on the chart. Power Bars can be detected on any timeframe or symbol that produces standard candlestick data. However, since the Opening Power Bar Strategy focuses on the first 60 minutes of the trading session, they’re most meaningful on lower intraday timeframes such as 1-minute to 5-minute charts.
The indicator identifies Power Bars using two user-defined inputs: Sensitivity and Body %.
🔹Sensitivity:
The Sensitivity setting determines how large a candle’s body must be relative to nearby candles. It uses the Average True Range (ATR) to compare the current candle’s size with recent candles, and the Sensitivity value acts as a multiplier of that ATR. A higher Sensitivity value means the candle must be much larger than recent candles to qualify, so fewer Power Bars will form. A lower value makes the filter less strict, allowing more candles to qualify.
🔹Body %:
The Body % setting controls what percentage of the candle’s total range must be body rather than Wick. A higher value requires the body to take up more of the candle’s total range, so fewer candles pass the filter. A lower value allows candles with more wick to qualify, so more Power Bars will form.
Body % Example:
If Body % is set to 50, the candle body must cover at least half of the candle’s total range. For example, if a candle’s high is $11, its low is $10, its open is $10.20, and its close is $10.80, then the total range is $1 ($11 - $10) and the body is $0.60 ($10.80 - $10.20). Body % = (Body / Total Range) * 100 = (0.60 ÷ 1.00 × 100) = 60%. Since 60% is greater than the input of 50%, this candle passes the Body % criteria.
Once a candlestick closes and it meets both the Sensitivity and Body % requirements, it will be plotted in a different color, using barcolor() function. Users can adjust the bullish/bearish colors of Power Bars by adjusting the ‘Candle Coloring’ setting. The Power Bar candle coloring is purely visual and does not affect signal logic or strategy calculations.
🔹Do Power Bars form outside the first 60 minutes?:
Power Bars can technically form at any time of day, but the Opening Power Bar Strategy only uses those formed between 9:30 AM and 10:30 AM ET for trade signals.
2️⃣ Pre-Market Levels
The indicator tracks pre-market price action from 4:10 AM EST until 9:29 AM EST to determine the session’s High and Low. When pre-market ends, both levels are drawn and continuously projected to the right throughout the regular session. A midline is calculated as the midpoint between those levels and is used to determine bullish or bearish bias at the open. This midline is calculated in the indicator’s background and not visually plotted.
Long signals require price to be positioned below the midline before breaking upward, and Short signals require price to be positioned above the midline before breaking downward.
Users can enable retest labels, which appear if price touches the pre-market low, and closes above it, or if price touches the pre-market high, and closes below it. Users can also enable/disable the pre-market levels. If disabled, the pre-market high and pre-market low levels will not be displayed.
3️⃣Long/Short Signals:
Long and Short signals only trigger during the first hour of the New York trading session, between 9:30 AM and 10:30 AM EST. These signals form between the Pre-Market Low (PML) and Pre-Market High (PMH).
▫️ A Long entry requires:
1) A bullish power bar forms
1.a) The candle’s low is < the 50% area or Midpoint of the PML/PMH range
1.b) The candle closes above the PML, but below the PMH
2) If this candle occurs between 09:30 AM and 10:30 AM, a long signal will appear.
▫️ A Short Entry requires:
1) A bearish power bar forms
1a) The candle’s high is > the 50% area or Midpoint of the PML/PMH range
1b) The candle closes below the PMH, but above the PML
2) If this candle occurs between 09:30 AM and 10:30 AM, a short signal will appear.
Only one trade can be active at a time. Users can enable or disable Long Signals and Short Signals independently. Entry markers appear directly on the chart at confirmation.
When a signal is plotted on the Power Bar’s candle close, the indicator automatically builds a rule-based trade structure and plots the following information:
Stop-Loss (SL)
Take-Profit 1 (TP 1)
Take-Profit 2 (TP 2)
Take-Profit 3 (TP 3)
For Long signals, the SL is placed at the low of the bullish Power Bar and TP 1 is placed at the PMH. The distances for TP 2 and TP 3 are then measured using the move from the entry price to TP 1. That same distance is added once above TP 1 to set TP 2, and added again above TP 2 to set TP 3.
For Short signals, the SL is placed at the high of the bearish Power Bar, and TP 1 is placed at the PML. The distances for TP 2 and TP 3 are then measured using the absolute value of the move from the entry price to TP 1. That same distance is subtracted once below TP 1 to set TP 2, and subtracted again below TP 2 to set TP 3.
🔹Trailing Stop-Loss Feature:
When the Trailing Stop-Loss setting is enabled, the Stop-Loss (SL) automatically adjusts as price reaches take-profit levels. This feature helps secure profits while keeping the trade logic completely rule-based and non-discretionary.
Here’s exactly how it works step-by-step:
▫️ Initial Stop-Loss placement:
For a Long trade, the initial SL is set at the low of the Power Bar that triggered the entry.
For a Short trade, the initial SL is set at the high of the Power Bar that triggered the entry.
This level stays fixed until one of the Take-Profit targets is reached.
▫️ After TP 1 is hit:
The SL automatically moves to the entry price (breakeven).
This eliminates all downside risk on the trade.
▫️ After TP2 is hit:
The SL automatically moves to TP 1
This locks in a partial profit while allowing the trade to continue toward TP 3.
▫️ Final exit condition:
The trade is considered complete once either the trailing Stop-Loss or TP 3 is reached.
4️⃣Simple Moving Average (SMA)
In addition to the core trade logic, the indicator includes an optional Simple Moving Average (SMA) that provides extra confirmation and context for interpreting Power Bar signals. The SMA is not related to any of the signal generation logic. It does not influence when or where Power Bars or trade signals appear. Instead, it serves as a contextual confirmation tool and should be used as an additional way to interpret the strength and quality of a setup once a signal is triggered.
There are a few ways the SMA can be used for extra context with the Opening Power Bar Strategy:
▫️ #1 Directional Confirmation:
The SMA is mainly used as a confirmation tool for countertrend Power Bar setups. It helps traders identify when a strong reversal may be developing against the prior trend.
When the SMA is sloping downward but a bullish Power Bar closes above it, that can signal a potential shift from bearish to bullish momentum.
When the SMA is sloping upward but a bearish Power Bar closes below it, that can indicate a possible transition from bullish to bearish conditions.
▫️ #2 Timing Entries
When a large Power Bar prints a signal far away from the SMA, it often indicates that price has moved quickly and temporarily extended away from its average level. In these cases, the SMA can be used as a pullback area where price may retrace before resuming its move. Waiting for this pullback can often lead to a better risk-to-reward trade setup.
For example, in the chart below, a strong bullish Power Bar formed and triggered a Long signal while closing well above the SMA. Entering immediately after the signal would have produced a 0.22 risk-to-reward to TP 1. However, waiting for price to retrace back toward the SMA before entering would have resulted in a much stronger 2.46 risk-to-reward ratio.
The SMA provides a simple way to identify areas for safer pullback entries when a Power Bar signal forms too far from its average level. This helps traders maintain consistency with their risk-to-reward targets and align entries with their trading plan.
▫️ #3 Risk/Trade Management:
During active trades, the SMA can also be used to gauge the healthiness of a trend.
If price continues to respect the SMA after entry, it supports holding the position toward later Take-Profit levels. Additionally, the SMA can highlight areas where traders may consider adding to existing positions if price respects it.
If price closes strongly back through the SMA in the opposite direction, traders may use that as an early exit or a signal that momentum has shifted.
▫️ Optional and Visual Only:
The SMA is an optional visual overlay that can be turned on or off in the indicator’s settings. It is purely there for traders who want an added layer of confirmation and structure when evaluating setups from the Opening Power Bar Strategy.
Users can customize the length of the SMA and the color within the settings.
📢 Alerts:
The indicator supports alerts, so you never miss a key market move. You can choose to receive alerts for each of the following conditions:
Long Signal
Short Signal
TP 1 (Take-Profit 1)
TP 2 (Take-Profit 2)
TP 3 (Take-Profit 3)
SL (Stop-Loss)
Pre-Market Low Retest
Pre-Market High Retest
🚩UNIQUENESS:
This indicator automates a structured opening-range strategy that traders typically manage manually each morning. It identifies valid Power Bars only when they occur inside the pre-market high/low range, confirms direction using pre-market midline context, and automatically builds risk targets using the pre-market range itself. Once a valid trigger occurs during the defined trade window, the indicator immediately generates a complete trade idea (entry/SL/TP 1-3) with built-in trailing logic and alerts.
First presented FVG (w/stats) w/statistical hourly ranges & biasOverview
This indicator identifies the first Fair Value Gap (FVG) that forms during each hourly session and provides comprehensive statistical analysis based on 12 years of historical NASDAQ (NQ) data. It combines price action analysis with probability-based statistics to help traders make informed decisions.
⚠️ IMPORTANT - Compatibility
Market: This indicator is designed exclusively for NASDAQ futures (NQ/MNQ)
Timeframe: Statistical data is based on FVGs formed on the 5-minute timeframe
FVG Detection: Works on any timeframe, but use 5-minute for accuracy matching the statistical analysis
All hardcoded statistics are derived from 12 years of NQ historical data
What It Does
1. FVG Detection & Visualization
Automatically detects the first FVG (bullish or bearish) that forms each hour
Draws colored boxes around FVGs:
Blue boxes = Bullish FVG (gap up)
Red boxes = Bearish FVG (gap down)
FVG boxes extend to the end of the hour
Optional midpoint lines show the center of each FVG
Uses volume imbalance logic (outside prints) to refine FVG boundaries
2. Hourly Reference Lines
Vertical Delimiter: Marks the start of each hour
Hourly Open Line: Shows where the current hour opened
Expected Range Lines: Projects the anticipated high/low based on historical data
Choose between Mean (average) or Median (middle value) statistics
Upper range line (teal/green)
Lower range line (red)
All lines span exactly one hour from the moment it opens
Optional labels show price values at line ends
3. Real-Time Statistics Table
The table displays live data for the current hour only:
Hour: Current hour in 12-hour format (AM/PM)
FVG Status: Shows if a Bull FVG, Bear FVG, or no FVG has formed yet
Green background = Bullish FVG detected
Red background = Bearish FVG detected
1st 15min: Direction of the first 15 minutes (Bullish/Bearish/Neutral/Pending)
Continuation %: Historical probability that the hour continues in the first 15-minute direction
Color-coded: Green for bullish, red for bearish
Avg Range %: Expected percentage range for the current hour (based on 12-year mean)
FVG Effect %: Historical probability that FVG direction predicts hourly close direction
Shows BISI→Bull % for bullish FVGs
Shows SIBI→Bear % for bearish FVGs
Blank if no FVG has formed yet
Time Left: Countdown timer showing MM:SS remaining in the hour (updates in real-time)
Hourly Bias: Historical directional tendency (bullish % or bearish %)
H Open: Current hour's opening price
Exp Range: Projected price range (Low - High) based on historical average
Customization Options
Detection Settings:
Lower Timeframe Selection (15S, 1min, 5min) - controls FVG detection granularity
Display Settings:
FVG box colors (bullish/bearish)
Midpoint lines (show/hide, color, style)
Table Settings:
Position (9 locations: corners, edges, center)
Text size (Tiny, Small, Normal, Large)
Hourly Lines:
Toggle each line type on/off
Hour delimiter (color, width)
Open line (color, width, style)
Range lines (color, width, style)
Choose Mean or Median statistics for range calculation
Show/hide labels with customizable text size
How to Use
Apply to NQ futures chart (NQ1! or MNQ1!)
Set chart to 5-minute timeframe for optimal FVG detection matching the statistical data
Watch for the first FVG to form each hour
Reference the table for probability-based decision support:
High continuation % = strong directional bias
FVG Effect % shows reliability of the FVG signal
Time Left helps manage entries/exits within the hour
Use range lines as potential targets or reversal zones
Statistical Foundation
All statistics are derived from:
12 years of NASDAQ (NQ) historical data
Hourly analysis of FVG formation patterns
First 15-minute directional analysis
Mean and Median calculations for range expectations
Data encompasses 2,400+ samples per hour
Best Practices
✅ Use on NQ/MNQ futures only
✅ Best on 5-minute charts (matches statistical data)
✅ Combine FVG signals with continuation probabilities
✅ Use range lines as potential profit targets
✅ Watch the countdown timer for hour-end setups
❌ Do not use on other markets (statistics won't apply)
❌ Avoid using during low-liquidity hours (5PM ET has minimal data)
Technical Notes
Timezone: America/New_York (EST/EDT)
Weekend filtering: Automatically hides data during market closure
Updates in real-time on live bars
Maximum 500 boxes/lines for performance
FVG detection includes volume imbalance (body gap) refinement
Credits
Statistical analysis based on 12 years of NASDAQ historical data. FVG detection methodology follows ICT concepts with volume imbalance refinement.
Disclaimer: This indicator provides statistical analysis based on historical data. Past performance does not guarantee future results. Always use proper risk management.
Would you like me to adjust any section or add/remove anything?6-9 Session & Levels - Customizable Range Analysis Indicator
Description:
This indicator provides comprehensive session-based range analysis designed for intraday traders. It calculates and displays key levels based on a customizable session period (default 6:00-9:00 AM ET).
Core Features:
Sespastedthis is a summary for another indicator- i was hoping for something more like this in terms of content etc22:23Architected comprehensive indicator summary matching professional documentation style.The user wants me to rewrite the summary for their FVG indicator in a similar style to the example provided. The example is more structured, detailed, and professional. Let me create a comprehensive summary that follows that format:
Clear title
Description/Overview
Core Features (broken down into sections)
Input Settings Explained (detailed breakdown of all customization options)
How It Works section
Use Case
Note/Disclaimer
Let me make it thorough and match the style while being accurate to their indicator's functionality.Here's a detailed summary in that format:
Every Hour 1st FVG with Statistical Analysis - NASDAQ Hourly Trading Intelligence
Description:
This indicator identifies the first Fair Value Gap (FVG) that forms during each hourly session and provides comprehensive probability-based statistical analysis derived from 12 years of NASDAQ (NQ) historical data. It combines real-time FVG detection with hardcoded statistical probabilities to help intraday traders make informed decisions based on historical patterns and hourly price action dynamics.
IMPORTANT: This indicator is specifically calibrated for NASDAQ futures (NQ/MNQ) only. All statistical data is derived from 12 years of NQ historical analysis with FVGs detected on the 5-minute timeframe. Using this indicator on other markets will produce invalid statistical results.
Core Features:
FVG Detection & Visualization
Automatically detects and displays the first Fair Value Gap (bullish or bearish) that forms within each hourly session
Color-coded boxes mark FVG zones: Blue for bullish FVGs (gap up), Red for bearish FVGs (gap down)
FVG boxes extend precisely to the end of the hour boundary
Optional midpoint lines show the center point of each FVG
Uses volume imbalance logic (outside prints) to refine FVG boundaries beyond simple wick-to-wick gaps
Supports both chart timeframe detection and lower timeframe detection via request.security_lower_tf
Hourly Reference Lines
Vertical Hour Delimiter: Marks the exact start of each new hour with an extendable vertical line
Hourly Open Line: Displays the opening price of the current hour
Expected Range Lines: Projects anticipated high and low levels based on 12 years of statistical data
Choose between Mean (average) or Median (middle value) calculations
Upper range line shows expected high
Lower range line shows expected low
All lines span exactly one hour from open to close
Optional labels display exact price values at the end of each line
Real-Time Statistics Table
Displays comprehensive live data for the current hour only:
Hour: Current hour in 12-hour format (e.g., "9AM", "2PM")
FVG Status: Shows detection state with color coding
"None Yet" (white background) - No FVG detected
"Bull FVG" (green background) - Bullish FVG identified
"Bear FVG" (red background) - Bearish FVG identified
1st 15min: Direction of first 15 minutes (Bullish/Bearish/Neutral/Pending)
Continuation %: Historical probability that the hour closes in the direction of the first 15 minutes
Green background with up arrow (↑) for bullish continuation probability
Red background with down arrow (↓) for bearish continuation probability
Avg Range %: Expected percentage range for the current hour based on 12-year mean
FVG Effect %: Historical effectiveness of FVG directional prediction
Shows "BISI→Bull %" for bullish FVGs (gap up predicting bullish hourly close)
Shows "SIBI→Bear %" for bearish FVGs (gap down predicting bearish hourly close)
Displays blank if no FVG has formed yet
Time Left: Real-time countdown timer showing minutes and seconds remaining in the hour (MM:SS format)
Hourly Bias: Historical directional tendency showing bullish or bearish percentage bias
H Open: Current hour's opening price
Exp Range: Projected price range showing "Low - High" based on selected statistic (mean or median)
Input Settings Explained:
Detection Settings
Lower Timeframe: Select the base timeframe for FVG detection
Options: 15S (15 seconds), 1 (1 minute), 5 (5 minutes)
Recommendation: Use 5-minute to match the statistical data sample
The indicator uses this timeframe to scan for FVG patterns even when viewing higher timeframes
Display Settings
Bullish FVG Color: Set the color and transparency for bullish (upward) FVG boxes
Bearish FVG Color: Set the color and transparency for bearish (downward) FVG boxes
Show Midpoint Lines: Toggle horizontal lines at the center of each FVG box
Midpoint Line Color: Customize the midpoint line color
Midpoint Line Style: Choose between Solid, Dotted, or Dashed line styles
Table Settings
Table Position: Choose from 9 locations:
Top: Left, Center, Right
Middle: Left, Center, Right
Bottom: Left, Center, Right
Table Text Size: Select from Tiny, Small, Normal, or Large for readability on different screen sizes
Hourly Lines Settings
Show Hourly Lines: Master toggle for all hourly reference lines
Show Hour Delimiter: Toggle the vertical line marking each hour's start
Delimiter Color: Customize color and transparency
Delimiter Width: Set line thickness (1-5)
Show Hourly Open: Toggle the horizontal line at the hour's opening price
Open Line Color: Customize color
Open Line Width: Set thickness (1-5)
Open Line Style: Choose Solid, Dashed, or Dotted
Show Range Lines: Toggle the expected high/low projection lines
Range Statistic: Choose "Mean" (12-year average) or "Median" (12-year middle value)
Range High Color: Customize upper range line color and transparency
Range Low Color: Customize lower range line color and transparency
Range Line Width: Set thickness (1-5)
Range Line Style: Choose Solid, Dashed, or Dotted
Show Line Labels: Toggle price labels at the end of all horizontal lines
Label Text Size: Choose Tiny, Small, or Normal
How It Works:
FVG Detection Logic:
The indicator scans price action on the selected lower timeframe (default: 1-minute) looking for Fair Value Gaps using a 3-candle pattern:
Bullish FVG: Formed when candle 's high is below candle 's low, creating an upward gap
Bearish FVG: Formed when candle 's low is above candle 's high, creating a downward gap
The detection is refined using volume imbalance logic by checking for body gaps (outside prints) on both sides of the middle candle. This narrows the FVG zone to areas where bodies don't touch, indicating stronger imbalances.
Only the first FVG that forms during each hour is displayed. If a bullish FVG forms first, it takes priority. The FVG box is drawn from the formation time through to the end of the hour.
Statistical Analysis:
All probability statistics are hardcoded from 12 years (2,400+ samples per hour) of NASDAQ futures analysis:
First 15-Minute Direction: At 15 minutes into each hour, the indicator determines if price closed above, below, or equal to the hour's opening price
Continuation Probability: Historical analysis shows the likelihood that the hour closes in the same direction as the first 15 minutes
Example: If 9AM's first 15 minutes are bullish, there's a 60.1% chance the entire 9AM hour closes bullish (lowest continuation hour)
4PM shows the highest continuation at 86.1% for bullish first 15 minutes
FVG Effectiveness: Tracks how often the first FVG's direction correctly predicts the hourly close direction
BISI (Bullish Imbalance/Sell-side Inefficiency) → Bullish close probability
SIBI (Bearish Imbalance/Buy-side Inefficiency) → Bearish close probability
Range Expectations: Mean and median values represent typical price movement percentage for each hour
9AM and 10AM show the largest ranges (~0.6%)
5PM shows minimal range (~0.06%) due to low liquidity
Hourly Reference Lines:
When each new hour begins:
Vertical delimiter marks the hour's start
Hourly open line plots at the first bar's opening price
Range projection lines calculate expected high/low:
Upper Range = Hourly Open + (Range% / 100 × Hourly Open)
Lower Range = Hourly Open - (Range% / 100 × Hourly Open)
Lines extend exactly to the hour's end time
Labels appear at line endpoints showing exact prices
Real-Time Updates:
FVG Status: Updates immediately when the first FVG forms
First 15min Direction: Locked in at the 15-minute mark
Countdown Timer: Uses timenow to update every second
Table Statistics: Refresh on every bar close
Timezone Handling:
All times are in America/New_York (Eastern Time)
Automatically filters weekend periods (Saturday and Sunday before 6PM)
Hour detection accounts for daylight saving time changes
Use Cases:
Intraday Trading Strategy Development:
FVG Entry Signals: Use the first hourly FVG as a directional bias
Bullish FVG + High continuation % = Strong long setup
Bearish FVG + High continuation % = Strong short setup
First 15-Minute Breakout: Combine first 15-min direction with continuation probabilities
Wait for first 15 minutes to complete
If continuation % is above 70%, trade in that direction
Example: 4PM bullish first 15 min = 86.1% chance hour closes bullish
Range Targeting: Use expected high/low lines as profit targets or reversal zones
Price approaching mean high = potential resistance
Price approaching mean low = potential support
Compare mean vs median for different risk tolerance (median is more conservative)
Hour Selection: Focus trading on hours with:
High FVG effectiveness (11AM: 81.5% BISI→Bull)
High continuation rates (4PM: 86.1% bull continuation)
Avoid low-continuation hours like 9AM (60.1%)
Time Management: Use the countdown timer to:
Enter early in the hour when FVG forms
Exit before hour-end if no follow-through
Avoid late-hour entries with <15 minutes remaining
Statistical Edge Identification:
Compare current hour's FVG against historical effectiveness
Identify when first 15-min direction contradicts FVG direction (conflict = caution)
Use hourly bias to confirm or contradict FVG signals
Monitor if price stays within expected range or breaks out (outlier moves)
Risk Management:
Expected range lines provide logical stop-loss placement
FVG Effect % helps size positions (higher % = larger position)
Time Left countdown aids in time-based stop management
Avoid trading hours with neutral bias or low continuation rates
Statistical Foundation:
All embedded statistics are derived from:
12 years of NASDAQ futures (NQ) continuous contract data
5-minute timeframe FVG detection methodology
24 hours per day analysis (excluding weekends)
2,400+ samples per hour for robust statistical validity
America/New_York timezone for session alignment
Data includes:
Hourly range analysis (mean, median, standard deviation)
First 15-minute directional analysis
FVG formation frequency and effectiveness
Continuation probability matrices
Bullish/bearish bias percentages
Best Practices:
✅ Do:
Use exclusively on NASDAQ futures (NQ1! or MNQ1!)
Apply on 5-minute charts for optimal FVG detection matching statistical samples
Wait for first 15 minutes to complete before acting on continuation probabilities
Combine FVG signals with continuation % and FVG Effect % for confluence
Use expected range lines as initial profit targets
Monitor the countdown timer for time-based trade management
Focus on hours with high statistical edges (4PM, 11AM, 10AM)
❌ Don't:
Use on other markets (ES, RTY, YM, stocks, forex, crypto) - statistics will be invalid
Rely solely on FVG without confirming with continuation probabilities
Trade during low-liquidity hours (5PM shows only 0.06% average range)
Ignore the first 15-minute direction when it conflicts with FVG direction
Apply to timeframes significantly different from 5-minute for FVG detection
Use median range expectations aggressively (they're conservative)
Technical Implementation Notes:
Timezone: Fixed to America/New_York with automatic DST adjustment
Weekend Filtering: Automatically hides data Saturday and Sunday before 6PM ET
Performance: Maximum 500 boxes and 500 lines for optimal chart rendering
Update Frequency: Table updates on every bar close; timer updates every second using timenow
FVG Priority: Bullish FVGs take precedence when both form simultaneously
Lower Timeframe Detection: Uses request.security_lower_tf for accurate sub-chart-timeframe FVG detection
Precision: All price labels use format.mintick for appropriate decimal precision
Big thanks to @Trades-Dont-Lie for the FPFVG code in his excellent indicator that I've used here
Previous Day Week Month Highs & Lows [MHA Finverse]Previous Day Week Month Highs & Lows is a comprehensive multi-timeframe indicator that automatically plots previous period highs and lows across Daily, Weekly, Monthly, 4-Hour, and 8-Hour timeframes. Perfect for identifying key support and resistance levels that often act as magnets for price action.
How It Works
The indicator retrieves the highest high and lowest low from the previous completed period for each selected timeframe. Lines extend forward into current price action, allowing you to see when price approaches or breaks these critical levels in real-time. The indicator tracks the exact bar where each high and low occurred, ensuring accurate historical placement.
---
Key Features
Multi-Timeframe Levels:
• Current Daily, Previous Daily, 4H, 8H, Weekly, and Monthly highs/lows
• Fully customizable colors and line styles (Solid, Dashed, Dotted)
• Adjustable line width and extension length
Visual Enhancements:
• Price labels showing exact level values
• Range position percentage (distance from high/low)
• Optional period boxes highlighting timeframe ranges
• Day and date labels for reference
Trading Tools:
• Breakout markers when price crosses key levels
• Touch count tracking (how many times price tested each level)
• Time at level display (consolidation detection)
• Customizable thresholds for touch and time analysis
Alert System:
• Individual alerts for each timeframe: Daily High/Low Break, 4H High/Low Break, 8H High/Low Break, Weekly High/Low Break, Monthly High/Low Break
• Toggle switches to enable/disable alerts per timeframe
• Clear messages showing which level was broken and at what price
---
How to Use
Setup:
1. Enable your preferred timeframes in "Highs & Lows MTF" settings
2. Customize colors and styles to match your chart
3. Turn on visual features like price labels and range percentages
4. Set up alerts by creating specific alert conditions or using toggle switches
Trading Applications:
Breakout Trading: Watch for strong momentum when price breaks above previous highs or below previous lows
Support/Resistance: Use these levels as potential reversal points for entry/exit signals
Range Trading: Trade between previous highs and lows using the range position indicator
Stop Loss Placement: Place stops just beyond previous highs (shorts) or lows (longs)
Multiple Timeframe Confirmation: Combine timeframes for stronger signals (e.g., Daily near Weekly support)
---
Best Practices
• Use Weekly/Monthly for swing trading, Daily/4H/8H for day trading
• Combine with volume or momentum indicators for confirmation
• Multiple timeframe levels clustering together create high-probability zones
• The more touches a level has, the more significant it becomes
---
Disclaimer
This indicator is a technical analysis tool for identifying price levels based on historical data. It does not guarantee profits or predict future movements. Trading involves substantial risk. Always use proper risk management and never risk more than you can afford to lose.
Smart Divergence Engine Overlay [ChartNation]SMART DIVERGENCE ENGINE OVERLAY — CANDLE-ANCHORED RSI DIVERGENCE VISUALIZATION
═══════════════════════════════════════════
TECHNICAL OVERVIEW
═══════════════════════════════════════════
Smart Divergence Engine Overlay renders pivot-confirmed RSI divergences directly on the price chart with candle-anchored lines and labels. This companion overlay shares the identical detection logic as the panel version but visualizes signals at their exact price levels rather than in oscillator space.
The overlay implements repainting-proof divergence detection through pivot-locked RSI evaluation at historical bars (rsi ), ensuring all lines and labels remain stable as new bars form. Visual elements anchor to xloc.bar_index coordinates, maintaining precise positioning across zoom levels and timeframe changes.
═══════════════════════════════════════════
CORE ARCHITECTURE
═══════════════════════════════════════════
PIVOT-LOCKED DETECTION SYSTEM
The overlay evaluates RSI at confirmed pivot bars, not at the current bar:
Technical implementation:
Price pivots detected via ta.pivotlow() / ta.pivothigh() with configurable Left/Right parameters
RSI value captured at the pivot bar: rsi (historical bar offset)
Divergence comparison performed between stored pivot values (lowRsiPrev vs lowRsiCurr)
State management via var floats prevents recalculation across bars
Result: Once a divergence line prints, it never moves or disappears. Historical stability is guaranteed because RSI evaluation occurs at a locked bar index (bar_index - pivotR), not at the moving present.
Bullish divergence logic:
if not na(lowPricePrev) and lowPriceCurr < lowPricePrev and lowRsiCurr > lowRsiPrev
→ Price made lower low, RSI made higher low
→ Divergence confirmed at lowIdxCurr (pivot bar index)
Bearish divergence logic:
if not na(highPricePrev) and highPriceCurr > highPricePrev and highRsiCurr < highRsiPrev
→ Price made higher high, RSI made lower high
→ Divergence confirmed at highIdxCurr (pivot bar index)
RSI ENGINE
The overlay uses the same RSI calculation as the panel version to ensure signal synchronization:
Base calculation: ta.rsi(src, 14) — standard RSI momentum window
Smoothing layer: ta.rma(rsiRaw, 2) — reduces high-frequency noise
Volatility bands: 34-period SMA basis with 1.618 standard deviation multiplier
Purpose: Bands define adaptive overbought/oversold context (not plotted on overlay)
The volatility framework exists in the calculation layer to maintain logic parity with the panel version, ensuring divergences trigger at identical bars across both implementations.
CANDLE-ANCHORED RENDERING
All visual elements use xloc.bar_index positioning:
Line rendering:
line.new(x1=lowIdxPrev, y1=lowPricePrev, x2=lowIdxCurr, y2=lowPriceCurr,
xloc=xloc.bar_index, color=bullCol, width=lineW)
This anchors lines to specific bar indices and price levels, not to time coordinates. Result: Lines maintain exact positioning when zooming, panning, or switching timeframes.
Label rendering:
label.new(x=lowIdxCurr, y=lowPriceCurr, text="BUY",
xloc=xloc.bar_index, style=label.style_label_up)
Labels attach to the second pivot's bar index and price level, scaling naturally with chart transformations.
═══════════════════════════════════════════
VISUAL IMPLEMENTATION
═══════════════════════════════════════════
DIVERGENCE LINES
Bullish divergence: Connects two price swing lows with upward-sloping line
Color: Configurable (default lime green)
Width: 1-6 pixels (configurable)
Endpoint 1: Previous swing low (lowPricePrev at lowIdxPrev)
Endpoint 2: Current swing low (lowPriceCurr at lowIdxCurr)
Requirement: Current price lower than previous, current RSI higher than previous
Bearish divergence: Connects two price swing highs with downward-sloping line
Color: Configurable (default red)
Width: 1-6 pixels (configurable)
Endpoint 1: Previous swing high (highPricePrev at highIdxPrev)
Endpoint 2: Current swing high (highPriceCurr at highIdxCurr)
Requirement: Current price higher than previous, current RSI lower than previous
Lines extend between pivot bars only (extend.none), never projecting into future.
DIVERGENCE LABELS
Optional BUY/SELL markers render at the second pivot:
BUY label (bullish divergence):
Position: Below current swing low (label.style_label_up)
Text: "BUY"
Color: Matches bullish line color
Size: Normal (size.normal)
SELL label (bearish divergence):
Position: Above current swing high (label.style_label_down)
Text: "SELL"
Color: Matches bearish line color
Size: Normal (size.normal)
Labels can be toggled independently of lines via showLabels input.
═══════════════════════════════════════════
CONFIGURATION PARAMETERS
═══════════════════════════════════════════
RSI CALCULATION SETTINGS:
Price Source: close (configurable to any price field)
RSI Length: 14 (standard momentum window)
Volatility Band Length: 34 (SMA period for RSI basis)
Band Multiplier: 1.618 (standard deviation expansion)
Note: Bands calculate internally but don't plot (logic parity with panel)
DIVERGENCE DETECTION SETTINGS:
Pivot Left: 10 bars (left-side swing confirmation)
Pivot Right: 10 bars (right-side swing confirmation)
Overbought Level: 68 (reference, does not affect logic)
Oversold Level: 32 (reference, does not affect logic)
Pivot parameters control strictness:
Higher values = fewer, more significant divergences (requires wider swings)
Lower values = more frequent divergences (detects smaller swings)
VISUAL SETTINGS:
Show Divergence Lines: true/false toggle
Show BUY/SELL Labels: true/false toggle (independent of lines)
Line Width: 1-6 pixels
Bull Color: Configurable (default lime green)
Bear Color: Configurable (default red)
═══════════════════════════════════════════
ALERT SYSTEM
═══════════════════════════════════════════
Two alert conditions trigger at identical timing as visual signals:
"Bullish Divergence (Overlay)"
Triggers when: Bullish divergence confirms at second pivot
Timing: Fires AFTER Pivot Right bars complete (delayed but stable)
Message: "TDI: Bullish divergence"
Reliability: Never repaints (confirmation locked at rsi )
"Bearish Divergence (Overlay)"
Triggers when: Bearish divergence confirms at second pivot
Timing: Fires AFTER Pivot Right bars complete (delayed but stable)
Message: "TDI: Bearish divergence"
Reliability: Never repaints (confirmation locked at rsi )
Alert configuration:
Set once on any chart/timeframe
Fires only when divergence condition evaluates true
Synchronized with visual rendering (alert = line + label appear)
═══════════════════════════════════════════
TRADING IMPLEMENTATION
═══════════════════════════════════════════
VISUAL ANALYSIS WORKFLOW
The overlay provides direct price-level context for divergence signals:
Bullish divergence interpretation:
Identify two connected swing lows with upward-sloping line
Lower price low indicates selling pressure weakening
Higher RSI low indicates momentum refusing to confirm price weakness
BUY label marks the second swing low (divergence confirmation point)
Bearish divergence interpretation:
Identify two connected swing highs with downward-sloping line
Higher price high indicates buying pressure weakening
Lower RSI high indicates momentum refusing to confirm price strength
SELL label marks the second swing high (divergence confirmation point)
CONFLUENCE WITH PRICE STRUCTURE
Overlay enables direct correlation with chart elements:
Support/Resistance alignment:
Bullish divergence at major support level = higher probability reversal
Bearish divergence at major resistance level = higher probability reversal
Divergence in middle of range = lower conviction signal
Volume confirmation:
Divergence with decreasing volume = confirms momentum exhaustion
Divergence with increasing volume = mixed signal, proceed with caution
Multi-timeframe context:
Higher timeframe trend alignment increases signal reliability
Counter-trend divergences (against HTF trend) require additional confirmation
ENTRY/EXIT FRAMEWORK
The overlay marks divergence confirmation points, not entry triggers:
Entry consideration process:
Divergence line appears → structure-confirmed momentum divergence detected
Wait for price confirmation (engulfing candle, break of structure, rejection wick)
Validate with additional confluence (volume, support/resistance, HTF trend)
Enter with predefined stop below/above divergence pivot
Size position according to distance to invalidation level
Exit planning:
Initial target: Previous swing high (bullish) / swing low (bearish)
Trail stop: Move to breakeven after initial profit target
Invalidation: Close below divergence low (bullish) / above divergence high (bearish)
═══════════════════════════════════════════
PANEL VS OVERLAY USAGE
═══════════════════════════════════════════
IDENTICAL DETECTION LOGIC
Both versions implement the same pivot-locked RSI evaluation:
Same RSI calculation (14-length with 2-period RMA smoothing)
Same volatility band framework (34-SMA + 1.618σ)
Same pivot confirmation (10 Left + 10 Right)
Same divergence comparison (rsi at locked bar indices)
Result: Divergences trigger at identical bars across both implementations.
RENDERING DIFFERENCES
Panel version (overlay=false):
Renders in separate pane below price chart
Displays RSI line, volatility bands, 50-line midline
Divergence lines drawn in oscillator space (RSI value coordinates)
Optional Shark Fin exhaustion visualization
Labels positioned relative to RSI levels
Overlay version (overlay=true):
Renders directly on price chart
No RSI line or bands visible (calculate internally for logic only)
Divergence lines drawn in price space (actual price coordinates)
No Shark Fin visualization (price chart remains clean)
Labels positioned at actual swing high/low prices
COMPLEMENTARY WORKFLOW
Recommended usage pattern:
Panel version: Monitor RSI regime (above/below 50), band interactions, Shark Fin exhaustion
Overlay version: Identify exact divergence price levels, correlate with support/resistance
Combined analysis: Use panel for momentum context, overlay for entry/exit precision
Alternative workflow (overlay only):
If RSI analysis not required, overlay version provides clean divergence detection
Pair with external RSI indicator if separate momentum visualization needed
Focuses chart space on price action and divergence markers only
═══════════════════════════════════════════
TECHNICAL SPECIFICATIONS
═══════════════════════════════════════════
RESOURCE ALLOCATION:
max_lines_count: 500 (divergence connector lines)
max_labels_count: 500 (BUY/SELL markers)
Suitable for most chart configurations and timeframes
RENDERING STABILITY:
xloc.bar_index positioning ensures visual stability across zoom/pan operations
Historical divergences never move once printed
Lines and labels scale proportionally with chart transformations
TIMEFRAME COMPATIBILITY:
Functions on any timeframe (1m to 1M)
Pivot detection adapts to bar spacing automatically
Lower timeframes generate more frequent signals (smaller swings)
Higher timeframes generate fewer signals (larger swings)
SYMBOL COMPATIBILITY:
Works on all asset classes (stocks, forex, crypto, futures, indices)
No symbol-specific logic or calculations
Universal RSI-based divergence detection
PERFORMANCE CHARACTERISTICS:
Lightweight calculation overhead (RSI + pivot detection + state management)
Visual rendering occurs only on divergence confirmation (not every bar)
No continuous repainting or historical recalculation
═══════════════════════════════════════════
USE CASE SCENARIOS
═══════════════════════════════════════════
SCENARIO 1: Support/Resistance Divergence
Setup: Price tests major support level twice, second test makes lower low
Signal: Bullish divergence line appears, RSI makes higher low at support
Interpretation: Momentum refusing to confirm price weakness at critical level
Action: Consider long entry on next bullish candle above divergence low
SCENARIO 2: Trend Exhaustion
Setup: Strong uptrend, price makes new high but momentum slowing
Signal: Bearish divergence line appears, RSI makes lower high
Interpretation: Buying pressure weakening despite higher price high
Action: Consider profit-taking on longs, watch for reversal confirmation
SCENARIO 3: Range-Bound Reversal
Setup: Price oscillating in horizontal range, tests lower boundary
Signal: Bullish divergence at range support
Interpretation: Oversold bounce opportunity within defined range
Action: Long entry targeting range midpoint or upper boundary
SCENARIO 4: Failed Breakout
Setup: Price breaks resistance but momentum doesn't confirm
Signal: Bearish divergence forms immediately after breakout
Interpretation: Breakout lacks momentum conviction, likely false breakout
Action: Consider fade setup (short) with stop above divergence high
═══════════════════════════════════════════
LIMITATIONS & CONSIDERATIONS
═══════════════════════════════════════════
SIGNAL TIMING:
Divergences print AFTER Pivot Right bars complete. This delay is intentional:
Ensures structure confirmation (full swing formation)
Prevents real-time repaint issues
Trades confirmation reliability for signal speed
Users requiring instant signals should use real-time divergence detectors (with repaint risk).
Users requiring reliable, stable signals should accept the confirmation delay.
LINE CLUTTER:
On lower timeframes with sensitive pivot settings:
High signal frequency may create visual clutter
Solution: Increase Pivot Left/Right values to filter smaller swings
Alternative: Use panel version for primary analysis, overlay for key divergences only
FALSE SIGNALS:
Divergences indicate momentum divergence, not guaranteed reversals:
Strong trends can maintain divergent conditions for extended periods
Divergence in isolation is a warning sign, not a trade trigger
Requires confluence with price action, volume, structure for high-probability setups
VOLATILITY BAND CONTEXT:
Bands calculate internally but don't visualize on overlay:
Users lose visual context of RSI overbought/oversold zones
Solution: Use panel version alongside overlay for complete RSI regime awareness
Alternative: Add separate RSI indicator to chart for band visualization
═══════════════════════════════════════════
Smart Divergence Engine Overlay provides candle-anchored, repainting-proof RSI divergence visualization directly on price charts. Lines and labels render at exact pivot price levels using xloc.bar_index positioning, maintaining stability across all chart transformations. Divergence detection uses pivot-locked RSI evaluation (rsi ) to ensure historical signals never move or disappear.
The overlay shares identical detection logic with the panel version but renders in price space rather than oscillator space, enabling direct correlation with support/resistance levels and price structure. All visual elements trigger only after full pivot confirmation (Pivot Left + Pivot Right bars), trading signal speed for absolute reliability.
NQ Market DNA MapNQ Market DNA Map
The Market DNA Map indicator is designed to visualize key trading sessions (Asia, London, and New York) on the chart while providing a probabilistic lookup table based on historical session patterns. This tool draws session boxes with midline references, extends session highs and lows until mitigated or a daily hardstop (16:00 in the selected timezone), and displays a summary table with statistical metrics derived from predefined historical data. The data mappings are hardcoded, reflecting an analytical approach for session-based price action. Note that all probabilities and metrics are based on past observations and should not be interpreted as predictions or guarantees of future market behavior. These statistics are only tested and generated based on NQ futures. This indicator is for educational and informational purposes only; trading decisions should incorporate additional analysis and risk management.
Key Features
• Session Visualization:
o Draws colored boxes for the Asia, London, and New York sessions, updating in real-time as the session progresses.
o Includes a dotted midline within each box for quick reference to the session's midpoint.
o Extends horizontal lines from the final session high and low until price mitigates them (crossing both above and below) or the daily hardstop is reached.
• Probabilistic Table:
o A customizable-position table appears on the chart (once the New York open is detected), summarizing conditions and metrics for the current day's setup.
o Conditions include: Asia range relative to its rolling average, London open relative to Asia's midpoint, London sweep type (high only, low only, both, or none), and New York open relative to London's midpoint.
o Metrics displayed include:
First High Sweep %: Probability (based on historical data) that the high of the prior session is swept first during New York.
First Low Sweep %: Probability that the low is swept first.
Med Pen ↑ (High): Median penetration distance (in points) above the session high.
Med Pen ↓ (Low): Median penetration below the session low.
Fail High -> Low %: Failure rate where an initial high sweep fails and reverses to sweep the low.
Fail Low -> High %: Failure rate for an initial low sweep reversing to the high.
Sample Size: Number of historical observations for the matching pattern (n value), with a rating of "High" (n ≥ 150), "Mid" (n ≥ 75), or "Low" (n < 75) to indicate data reliability.
o The table uses color-coding for quick interpretation: Green for above-average/above-mid conditions, red for below, and neutral tones for metrics.
• Asia Range Ratio: Calculates a rolling average of Asia session ranges over a user-defined lookback period to classify the current Asia range as above or below average.
• Hardstop Logic: All extensions cease at 16:00 in the selected timezone to align with typical daily cycle resets.
Inputs and Customization
• Calculation Timezone: Select from predefined options (e.g., "America/New_York", "Europe/London") to align session times with your preferred market clock. Default: "America/New_York".
• Session Times:
o Asia Session: Default "2000-0200" (8:00 PM to 2:00 AM in the selected timezone).
o London Session: Default "0200-0800" (2:00 AM to 8:00 AM).
o NY Session: Default "0800-1600" (8:00 AM to 4:00 PM). These can be adjusted to match specific market hours or personal preferences.
• Asia Ratio Rolling Window: Integer lookback (default: 20) for calculating the average Asia session range ratio (range divided by open price).
• Table Position: Choose where the summary table appears on the chart (e.g., top_right, bottom_right). Default: top_right.
• Colors: Customizable box fill and border colors for each session (Asia: yellow tones, London: blue, NY: gray) with transparency settings for overlay compatibility.
How It Works
1. Session Detection: The indicator checks the current bar's time against user-defined sessions in the selected timezone. Sessions are non-overlapping and assume a 24-hour cycle.
2. Box and Line Drawing:
o At session start, a box is initialized from the open/high/low.
o As the session progresses, the box expands to capture the live high/low, with the midline updating dynamically.
o Upon session end, final high/low are locked, and extension lines are drawn horizontally.
o Extensions persist until price fully mitigates the level (high ≥ level and low ≤ level) or the hardstop time is passed.
3. Asia Ratio Calculation: Maintains a historical array of Asia range ratios (high-low divided by open). The current ratio is compared to the average over the lookback to classify as "Above Avg" or "Below Avg".
4. Key Generation and Lookup:
o A unique key is built from four binary/ternary codes: Asia classification (0/1), London open vs. Asia mid (0/1), London sweep type (0=high only, 1=low only, 2=both, 3=none), NY open vs. London mid (0/1).
o This key queries a hardcoded map of historical data (e.g., "0_0_0_0" for above-avg Asia, above-mid London open, high-only sweep, above-mid NY open).
o Data includes sample size, probabilities, failure rates, and median penetrations, all derived from historical analysis (total samples across all keys: approximately 5,000+ based on the provided mappings).
5. Table Rendering: On the last bar (real-time), the table populates with the current key's data. Metrics are formatted for readability, and penetration values are scaled to the current London high/low in points for context.
6. Performance Notes: The indicator uses up to 500 lines and boxes for extensions and visuals, ensuring compatibility with TradingView limits. It is overlay=true, so it plots directly on the price chart.
Data Source and Limitations
The probabilistic data is hardcoded and represents a compilation of historical session patterns from backtested or observed market behavior on NQ futures. Exact data collection methodology is not specified in the script, but values are presented as-is for illustrative purposes. Users should verify applicability to their specific symbol/timeframe, as markets evolve and past patterns may not repeat. Low-sample patterns (rated "Low") have higher uncertainty.
This indicator does not generate buy/sell signals, alerts, or trading strategies—it solely provides visual and statistical context. Always combine with other tools, fundamental analysis, and proper risk controls. Trading involves risk of loss; no performance guarantees are implied. If republishing or modifying, please credit the original structure and adhere to TradingView's publication guidelines. For questions on usage, refer to TradingView documentation on session indicators and probabilistic tools.
Nexural QWAPQWAP - Quantitative Weighted Average Price with True Order Flow Analysis
INTRODUCTION
This is legit one of the best indicators I can possibly make. Since I don't have access to tick data on tradingview I can't claim it's as accurate as possible but it is a very polished indicator for VWAP based trading and the bands are VERY useful for mean reverting trading.
QWAP Elite is an advanced Volume Weighted Average Price indicator that incorporates true order flow analysis through intrabar data decomposition. Unlike traditional VWAP indicators that simply calculate price multiplied by volume divided by total volume, this indicator attempts to identify the directional intent behind that volume by analyzing whether buying or selling pressure dominated each bar at a granular level.
The fundamental premise of this indicator is that not all volume is created equal. A bar with 10000 contracts where 8000 were aggressive buyers tells a very different story than a bar with 10000 contracts where 8000 were aggressive sellers, even if both bars close at the same price. Traditional VWAP treats these identically. QWAP attempts to weight the VWAP calculation based on this directional flow information.
This indicator was designed for traders who believe that institutional order flow leaves detectable footprints in price and volume data, and that identifying these footprints can provide an edge in determining likely future price direction. It is not a holy grail and it is not a replacement for proper risk management and trading discipline.
HOW THE INDICATOR WORKS
The True CVD Engine
The core of this indicator is its Cumulative Volume Delta calculation. Most indicators on TradingView approximate buying and selling volume by looking at whether a bar closed higher or lower than it opened. If the bar closed green, they assign all volume as buying volume. If it closed red, they assign all volume as selling volume. This is a crude approximation that misses significant nuance.
QWAP Elite uses the request security lower tf function to pull actual intrabar data. This means if you are on a 5 minute chart, the indicator is looking at the individual ticks or smaller timeframe bars that occurred within that 5 minute period. It then calculates how much volume occurred on up moves versus down moves within that bar, giving a much more accurate picture of whether buyers or sellers were more aggressive.
The Delta Ratio is calculated as the net delta divided by total volume, resulting in a value between negative one and positive one. A value of positive 0.6 means that 80 percent of volume was buying and 20 percent was selling. A value of negative 0.4 means that 70 percent was selling and 30 percent was buying. This ratio is then used to weight the VWAP calculation.
The intrabar precision is displayed in the dashboard as the number of bars analyzed. More bars means more granular data and theoretically more accurate delta calculation. The indicator automatically selects an appropriate lower timeframe based on your chart timeframe to balance accuracy with computational performance.
VIX Integration and Volatility Intelligence
The indicator pulls live VIX data and uses it to adjust its calculations dynamically. The VIX or CBOE Volatility Index represents the market expectation of 30 day forward looking volatility derived from SP500 option prices. When VIX is elevated, markets behave differently than when VIX is compressed.
Specifically, the indicator uses VIX to adjust the standard deviation bands around VWAP. In high volatility environments where VIX is above 25 or 30, the bands automatically widen to account for larger price swings. In low volatility environments where VIX is below 15, the bands tighten. This prevents false signals that would occur if static band widths were used across all market conditions.
The indicator also pulls VVIX which is the volatility of the VIX itself and VIX9D which is the 9 day VIX. By comparing VIX to VIX9D, the indicator can identify term structure conditions. When short term VIX is higher than longer term VIX, this is called backwardation and often indicates fear or stress in the market. When short term VIX is lower, this is contango and indicates complacency.
The VIX regime classification in the dashboard shows CALM when VIX is below 12, NORMAL between 12 and 20, ELEVATED between 20 and 30, and FEAR when above 30. Each regime suggests different trading approaches and position sizing considerations.
DETECTION SYSTEMS
Absorption Detection
Absorption occurs when large volume enters the market but price barely moves. This happens when one side is absorbing all the aggression from the other side. For example, if aggressive sellers are hitting the bid repeatedly but price is not dropping, it suggests there is a large buyer absorbing all that selling pressure. This often precedes reversals.
The indicator detects absorption by looking for bars with above average volume, below average range, and high wick ratios. A high wick ratio means the bar has long wicks relative to its body, indicating price moved but was pushed back. When these conditions coincide with strong delta in one direction, it suggests institutional absorption.
Liquidity Sweep Detection
Liquidity sweeps, also known as stop hunts, occur when price briefly exceeds a recent high or low to trigger stop losses, then reverses. Large traders need liquidity to fill their orders, and stops clustered above swing highs or below swing lows represent pools of liquidity they can tap into.
The indicator identifies sweeps by detecting when price exceeds the 5 or 20 bar high or low but closes back inside. A bull trap is identified when price sweeps above recent highs but closes below them, suggesting sellers trapped buyers who bought the breakout. A bear trap is the opposite, where price sweeps lows but closes above, trapping shorts.
Sweep detection is most useful when combined with delta analysis. A sweep with strong opposing delta, meaning price swept highs but delta was heavily negative, is a higher probability reversal signal than a sweep alone.
CVD Divergence Detection
Divergence between price and cumulative delta is one of the most reliable signals the indicator produces. When price is making higher highs but cumulative delta is making lower highs, it suggests that buying pressure is weakening even though price is still rising. This bearish divergence often precedes pullbacks or reversals.
Conversely, bullish divergence occurs when price makes lower lows but cumulative delta makes higher lows. This suggests that even though price is dropping, buying pressure is actually increasing, and sellers may be exhausted. These divergences are calculated over a 5 bar lookback period.
Stacked Imbalance Detection
Stacked imbalances occur when there are three or more consecutive bars with strong delta in the same direction. This represents sustained aggressive positioning by one side of the market. Three consecutive bars with delta above 0.5 suggests aggressive institutional buying. Three consecutive bars below negative 0.5 suggests aggressive institutional selling.
The count of consecutive imbalanced bars is displayed in the detection section. Four or more stacked imbalances is considered highly significant. This pattern often precedes continuation moves in the direction of the imbalance, as it suggests a committed directional player has entered the market.
Institutional Flow Detection
The indicator attempts to identify institutional activity by looking for the convergence of multiple factors. Specifically, it requires strong delta above 0.5 or below negative 0.5, volume persistence across multiple bars meaning above average volume for at least 2 to 3 bars in a row, and delta persistence meaning delta in the same direction for multiple consecutive bars.
When these factors align, the dashboard displays INST BUY or INST SELL instead of RETAIL. This classification should be viewed as a probability estimate rather than a certainty. Retail traders can produce similar patterns, and institutions can hide their activity. The designation is meant to highlight periods where the characteristics of flow are consistent with larger players.
ADAPTIVE WEIGHT SYSTEM
The indicator includes an adaptive system that automatically adjusts how much weight the CVD analysis has on the VWAP calculation. In quiet, low volatility markets, the CVD weight is reduced because the signal to noise ratio is lower. In active, high volatility markets with clear directional flow, the weight is increased.
The adaptation considers multiple factors including VIX regime, delta clarity meaning how strong and consistent the delta readings are, volume persistence, and time of day session weighting. The current adaptive weight is displayed in the dashboard and typically ranges from 0.05 to 0.50.
The adaptation speed setting controls how quickly the weight responds to changing conditions. A higher speed means faster adaptation but potentially more noise. A lower speed means smoother adaptation but potentially slower response to regime changes.
SESSION AWARENESS
Not all trading hours are equal. The indicator applies different weights to different trading sessions based on typical liquidity and reliability patterns. The open drive, which covers 9 30 to 10 30 AM Eastern time, receives a 1.4x weight multiplier because this is typically the highest volume and most directionally significant period of the day.
Power hour from 3 00 to 4 00 PM Eastern receives a 1.3x multiplier as institutional traders often execute their daily positioning in this final hour. The lunch hour from 11 00 AM to 2 00 PM receives a 0.9x multiplier due to typically lower volume and more choppy price action. Premarket receives 0.7x and after hours receives 0.5x due to thin liquidity and unreliable signals.
The current session is displayed in the dashboard header. Traders should consider reducing position sizes and widening stops during lower weight sessions, particularly premarket and after hours where the indicator readings are less reliable.
COMPOSITE SCORES
Bias Score
The Bias Score ranges from negative 100 to positive 100 and represents the indicators overall directional lean. It synthesizes delta analysis, VWAP momentum, and multi-timeframe confluence into a single number. A score above 50 indicates strong bullish bias. A score below negative 50 indicates strong bearish bias. Scores between negative 20 and positive 20 are considered neutral.
The visual bias meter in the dashboard shows this score as a bar that leans left for bearish or right for bullish. This provides an at a glance summary of the indicators current directional reading without needing to interpret multiple individual metrics.
Setup Quality Score
The Setup Quality Score ranges from 0 to 100 and measures how many factors are aligning to support a potential trade. It awards points for strong delta readings, volume persistence, multi-timeframe confluence, detection events like absorption or divergence, and favorable session timing. A score above 60 suggests multiple factors are confirming. A score below 30 suggests the setup lacks confirmation.
This score is designed to help traders filter trades. Rather than acting on every signal, traders can set a minimum quality threshold. For example, only taking trades when quality is above 50 will filter out lower probability setups. Higher thresholds mean fewer trades but potentially higher win rates.
Heat Score
The Heat Score measures overall market activity intensity and ranges from 0 to 100. It combines volume heat meaning how elevated current volume is relative to average, volatility heat based on ATR expansion or VIX levels, delta heat meaning how strong the current delta reading is, and deviation heat meaning how far price is from VWAP.
Markets with heat above 75 are classified as EXTREME and typically represent high opportunity but also high risk environments. Heat between 50 and 75 is ACTIVE and represents good trading conditions. Heat between 25 and 50 is NORMAL. Heat below 25 is QUIET and suggests range bound conditions where mean reversion strategies may outperform trend following.
DASHBOARD GUIDE
Header Row
The header row displays QWAP with a lightning bolt icon, the current session abbreviation like OPEN or POWER or LUNCH, the current regime classification, and VIX status with a colored indicator. Green indicates low VIX and favorable conditions. Yellow indicates elevated VIX. Red indicates high VIX or that VIX data is unavailable.
Signal Row
The signal row is the largest and most prominent element. It displays the primary signal which will be LONG, SHORT, REVERSAL, or WAIT. LONG appears when bias is strongly bullish and quality is high. SHORT appears when bias is strongly bearish and quality is high. REVERSAL appears when divergence or absorption is detected at an extreme sigma level. WAIT appears when conditions do not meet the threshold for a signal.
Next to the signal is the quality score displayed as Q followed by a number out of 100. This helps traders quickly assess how confirmed the signal is. A LONG signal with Q 72 is more compelling than a LONG signal with Q 45.
Order Flow Section
The delta row shows the current delta direction as BUY or SELL, the percentage strength, a visual indicator of strength with filled or empty circles, and an arrow indicating whether delta is accelerating or decelerating. The flow row shows whether activity is classified as INST BUY, INST SELL, or RETAIL, along with the number of intrabar data points used in the calculation.
Market Section
The heat row displays the heat score as a visual bar and numeric value. The vol row shows volatility state as EXPAND, COMPRESS, or NORMAL along with relative volume. The dist row shows distance from VWAP in sigmas and percentage, plus momentum direction.
Detection Section
This section only appears when detections are active. It displays warning icons next to detection types like BUY ABS, SELL ABS, BULL TRAP, BEAR TRAP, BULL DIV, BEAR DIV, BUY STACK, or SELL STACK. Each detection includes a score representing its strength or significance.
HOW TO USE THIS INDICATOR
Recommended Workflow
First, check the regime and session. If VIX is in FEAR mode or you are in premarket or after hours, consider reduced position sizing or waiting for better conditions.
Second, look at the primary signal and quality score. Signals with quality below 40 are low conviction. Consider requiring quality above 50 or 60 before acting.
Third, check the bias meter for overall directional lean. Ensure it aligns with your intended trade direction.
Fourth, review active detections. Absorption and divergence near VWAP bands increase reversal probability. Stacked imbalances support continuation.
Fifth, use VWAP and sigma bands for entry, stop, and target placement. The bands provide natural support and resistance levels based on statistical distribution.
Sixth, monitor for changes in delta and flow classification. Institutional activity transitioning to retail or delta reversing direction are warning signs.
TRADE EXAMPLES
Mean Reversion Setup
Price extended to 2.5 sigma above VWAP. Signal shows REVERSAL. Quality is 55. Absorption detected with BUY ABS showing score of 2.3. Delta is showing SELL at 45 percent despite price being elevated. This suggests buyers are being absorbed and a pullback to VWAP is likely. Enter short with stop above the 3 sigma band and target at VWAP or 1 sigma band.
Trend Continuation Setup
Signal shows LONG with quality 68. Bias meter shows STRONG BULL. BUY STACK detected with 4 consecutive imbalanced bars. Flow shows INST BUY. Price has pulled back to VWAP and is finding support. Heat is at 62 indicating ACTIVE conditions. Enter long on VWAP touch with stop below 1 sigma band and target at 2 sigma band.
Liquidity Sweep Setup
BEAR TRAP detected with score of 1.8. Price swept below recent lows but closed back above. Delta is showing BUY at 52 percent on the sweep bar. BULL DIV also active as price made lower low but delta made higher low. Signal shows REVERSAL with quality 58. Enter long with stop below the sweep low and target at VWAP.
HONEST ASSESSMENT OF STRENGTHS AND WEAKNESSES
Strengths
True CVD calculation using intrabar data is significantly more accurate than close greater than open approximations used by most indicators. This provides genuine insight into buying versus selling pressure.
VIX integration with term structure analysis is institutional grade thinking applied to a retail tool. Dynamic band adjustment prevents false signals in different volatility regimes.
Multiple detection systems provide different perspectives on the same market. Absorption, sweeps, divergence, and imbalances each capture different footprints of institutional activity.
Composite scores synthesize complex information into actionable numbers. Traders do not need to mentally integrate 15 different metrics. The quality score and bias score do this automatically.
Session awareness prevents trading during low quality periods. The automatic weighting helps filter out noise from premarket, after hours, and lunch periods.
Adaptive system self adjusts to market conditions. Traders do not need to manually tune parameters as volatility and activity change.
Weaknesses and Limitations
Intrabar data is still an approximation of true tick level order flow. Without actual tick data showing individual trades hitting bid versus lifting offer, even this calculation has error bars. Professional platforms like Sierra Chart or Quantower with direct exchange feeds will always have more accurate delta.
The indicator is computationally heavy. Users may experience slower chart loading particularly on lower end hardware or when viewing many bars. The optimization features help but cannot eliminate this cost entirely.
Institutional detection is probabilistic not definitive. Retail traders in aggregate can produce patterns that look institutional. Institutions can and do hide their activity. The INST BUY and INST SELL labels should be viewed as probability shifts not certainties.
The indicator works best on liquid instruments with significant volume. On thinly traded stocks or during illiquid periods, delta calculations become noisy and unreliable. The indicator is optimized for ES, NQ, SPY, QQQ, and similar high volume instruments.
VIX integration only works for US equity index products. If trading forex, crypto, or other asset classes, the VIX data is not directly applicable and should be disabled.
No indicator can predict the future. Order flow analysis shows what happened and what is happening. It cannot guarantee what will happen next. Large players can and do reverse their positioning. News events can invalidate any technical setup instantly.
The complexity of the indicator means there is a learning curve. New users may be overwhelmed by the number of metrics displayed. It takes time to develop intuition for what combinations of readings are significant.
The indicator does not include automated backtesting or historical performance statistics. Users cannot easily quantify the win rate or expected value of following its signals without manual journaling and analysis.
RISK MANAGEMENT GUIDELINES
This indicator is a tool not a trading system. It provides information that may help inform trading decisions but it does not make those decisions for you. Proper risk management is essential regardless of how compelling the indicator readings appear.
Position Sizing
Never risk more than 1 to 2 percent of your account on any single trade regardless of how high the quality score is. High quality setups still fail regularly. A setup with 70 percent win rate still loses 30 percent of the time, and those losses can come in clusters.
Consider reducing position size when VIX is in ELEVATED or FEAR regime, when trading during premarket or after hours sessions, when quality score is below 50, and when multiple detection systems are conflicting with each other.
Stop Loss Placement
The sigma bands provide natural levels for stop placement. For mean reversion trades, stops should typically be placed beyond the next sigma level. For example, if entering short at 2 sigma, place stop beyond 3 sigma. For trend trades entering at VWAP, consider stops beyond 1 sigma in the opposite direction.
Stops should also respect market structure. If there is a recent swing high or low near your calculated stop level, extend the stop beyond that swing point. Placing stops at obvious levels invites stop hunting.
In high VIX environments, consider wider stops. The VIX band multiplier automatically widens the sigma bands, and your stops should reflect this increased volatility. A stop that works in a 15 VIX environment may be too tight when VIX is 30.
Taking Profits
The sigma bands also provide natural profit targets. For mean reversion trades, VWAP itself is often the first target with the opposite 1 sigma band as an extended target. For trend trades, each sigma band can serve as a scaling point.
Pay attention to delta and flow changes as price approaches targets. If delta is weakening or flow classification shifts from institutional to retail, consider taking profits early. Conversely, if delta is strengthening into the target, consider holding for extension.
When to Avoid Trading
Consider sitting out when the signal shows WAIT and quality is below 30. In these conditions, the indicator is essentially saying there is no clear edge. Trading anyway is gambling not trading.
Avoid trading during major news events. The indicator cannot account for sudden information shocks. Economic releases, Fed announcements, earnings reports, and geopolitical events can invalidate any technical setup instantly.
Consider avoiding the first and last 5 minutes of regular trading hours. These periods often have erratic price action and unreliable delta calculations due to order imbalances at open and close.
SETTINGS REFERENCE
Core Engine Settings
VWAP Source determines what price is used for the VWAP calculation. The default HLC3 uses the average of high, low, and close which provides a balanced representation. HL2 uses just high and low average. Close uses only the closing price. Most traders should leave this at HLC3.
True CVD Engine should remain enabled for accurate order flow analysis. Disabling it falls back to close greater than open estimation which is significantly less accurate. Only disable if you are experiencing performance issues.
CVD Impact controls how much the delta analysis affects the VWAP calculation. Higher values mean delta has more influence. The default 0.2 provides a balance. Increase toward 0.5 if you want delta to have stronger effect. Decrease toward 0.1 if you want something closer to traditional VWAP.
Detection Sensitivity offers three presets. Conservative produces fewer signals but higher confidence. Balanced is the default middle ground. Aggressive produces more signals but with more false positives. New users should start with Balanced and adjust based on experience.
VIX Settings
VIX Integration should be enabled when trading US equity index products like ES, NQ, SPY, or QQQ. Disable it when trading forex, crypto, commodities, or individual stocks where VIX is not directly applicable.
VIX Symbol allows selection between VIX for SP500 volatility, VXN for Nasdaq volatility, and RVX for Russell 2000 volatility. Choose the one most relevant to your trading instrument.
VIX Baseline sets the historical average VIX level used for normalization. The default 16 represents the long term average. If trading in a persistently higher or lower VIX environment, adjusting this can help calibrate the regime classifications.
Display Settings
Dashboard Style offers three options. Compact shows only the signal and bias meter for minimal screen footprint. Elite adds order flow and market sections for balanced information. Full adds VIX details, detections, and adaptive system information for complete visibility.
FREQUENTLY ASKED QUESTIONS
Why does the indicator sometimes show WAIT when there is an obvious trend
The signal system is designed to identify high probability entry points not to constantly indicate trend direction. A strong uptrend may show WAIT because price is extended from VWAP and a pullback is likely before continuation. The indicator is trying to prevent you from buying the top of an impulse move.
Why is my delta reading different from another order flow tool
Different platforms calculate delta differently. Some use tick data. Some use time based aggregation. Some use volume based aggregation. The timeframe being analyzed matters as well. QWAP uses intrabar data which is more accurate than close versus open approximations but less accurate than true tick data from professional platforms.
Can I use this indicator for scalping
The indicator can be used on lower timeframes but becomes less reliable. On 1 minute charts, the intrabar decomposition has fewer data points to work with. For scalping, consider using 3 to 5 minute charts as a minimum. Also note that the session weighting and detection systems are calibrated for swing and intraday trading, not ultra short term scalping.
Does this indicator repaint
The VWAP line and sigma bands can adjust slightly as intrabar data comes in during a live bar. Once a bar closes, those values are fixed. The signals and detections are calculated on closed bars and do not repaint. For live trading, wait for bar close confirmation before acting on signals.
What markets does this work best on
The indicator is optimized for high liquidity US equity index products including ES, NQ, SPY, QQQ, IWM, and DIA. It can work on other liquid instruments but the VIX integration should be disabled for non equity products. Avoid using on low volume stocks or illiquid markets where delta calculations will be noisy.
DISCLAIMER
This indicator is provided for educational and informational purposes only. It is not financial advice. Past performance of any trading methodology is not indicative of future results. Trading futures, options, and other derivatives involves substantial risk of loss and is not suitable for all investors.
The creator of this indicator makes no guarantees about its accuracy or profitability. All trading decisions are the sole responsibility of the user. Before trading with real money, thoroughly test any strategy in simulation and ensure you understand the risks involved.
Order flow analysis provides information about market microstructure but cannot predict future price movements with certainty. Markets are complex adaptive systems influenced by countless variables including news events, economic data, central bank policy, geopolitical developments, and collective human psychology. No indicator can fully capture this complexity.
Use this tool as one input among many in your trading process. Combine it with sound risk management, proper position sizing, and continuous education. The best traders are those who remain humble about what they do not know and disciplined about protecting their capital.
ICT订单块交易【实时不滞后】Used to identify "Order Blocks" (OB), based on Break of Structure (BOS) and Retest mechanisms. It detects candles in the opposite direction after swing highs/lows to form potential supply/demand zones, confirming and plotting valid OBs only upon price retest. The indicator emphasizes "real" OBs: requiring a strong impulse (> ATR * multiplier) and retest verification.
- **Core Functions**: Detect BOS (Break of Structure); find opposite candles after prior impulses; verify strength and retest; draw OB boxes and labels.
- **Applicable Scenarios**: Suitable for ICT strategies, supply-demand trading, or reversal identification. Helps filter false breakouts and shows only high-probability zones.
- **Display Mode**: Overlaid on the main chart, displaying OBs as boxes, supporting up to 500 boxes.
- **Limitations**: Retest period fixed at 15 bars; based on simple candlesticks (no volume filter); no automatic cleanup of old OBs (manual management required).
The indicator has no built-in alerts but can be extended. ATR is used dynamically to validate strength.
## Input Parameters
Input parameters are concise, divided into core settings and display group. Below explains each parameter’s default value, type, and function.
### Core Settings
- **Structure Lookback** (int, default: 10, min: 3): Lookback period for structure detection (length for ta.highest/lowest). Higher values detect stronger structures.
- **Minimum Impulse Strength (ATR ×)** (float, default: 1.5, min: 0.5): Minimum impulse strength ((high-low) > ATR * this value). Ensures significant movement before OB.
- **Bars to watch for Retest** (int, default: 15, min: 1): Number of bars to monitor for retest. OB is confirmed only if price retests the OB zone within N bars after a breakout.
### Display Settings
- **Show Bullish OBs** (bool, default: true): Show bullish OBs (demand zone, rebounds after retest).
- **Show Bearish OBs** (bool, default: true): Show bearish OBs (supply zone, reverses after retest).
Colors are fixed: green (bullish, 80% transparency), red (bearish, 80% transparency).
## Calculations and Display
### Break of Structure (BOS) Detection
- **ATR Calculation**: ta.atr(14) used for strength verification.
- **Swing High/Low**: ta.highest(high, lookback) / ta.lowest(low, lookback) to identify structure. ...
## Calculation and Display
### Structure Breakout (BOS) Detection
- **ATR Calculation**: `ta.atr(14)` used for strength verification.
- **Swing High/Low**: `ta.highest(high, lookback)` / `ta.lowest(low, lookback)` identify structure.
- **BOS Trigger**:
- **bullBOS**: close > hh (breaks previous high).
- **bearBOS**: close < ll (breaks previous low).
### Order Block Identification
- **getLastOppositeCandle(isBullish)**:
- Search for the most recent "opposite" candle within the lookback period (bullBOS: bearish candle close < open; bearBOS: bullish candle close > open).
- Returns the index (idx); if none, then na.
- **OB Logic** (only when showBullish/Bearish=true):
- **Bullish OB (bullBOS)**:
- Find previous bearish candle (idx), check momentum: (high-low) > ATR * atrMult.
- Calculate obLow = low , obHigh = high .
- Backtest check: within 15 candles low inside → inRetest = true.
- If confirmed: draw green box (from bar_index - idx to current, obLow to obHigh); label "🟩 Bullish OB (Valid)" (top-left, green, 80% transparency, white text).
- Push into bullOBs array.
- **Bearish OB (bearBOS)**: symmetric, red box, label "🟥 Bearish OB (Valid)" (bottom-left).
- **Array Management**: var box bullOBs/bearOBs store all OBs; no automatic cleanup (expandable).
### Display Elements
- **Boxes**: dynamically from idx to current candle, visually showing OB area.
- **Labels**: displayed when confirmed, positioned based on obHigh/obLow.
- No lines/fills; pure boxes + labels.
## Alert Functionality
The indicator has no built-in alerts but can be extended via TradingView alerts, for example:
- **New OB**: bullBOS and inRetest or bearBOS and inRetest.
- **Backtest**: price enters OB range.
It is recommended to add `alertcondition()` for custom alerts. ...
It is recommended to add a custom alertcondition(), such as 'Bullish OB Confirmed'.
## Usage Tips
- **Optimization**: lookback=10 balances sensitivity; atrMult=1.5 filters weak impulses; retestBars=15 is suitable for intraday.
- **Customization**: turn off showBullish/Bearish to hide types; add volume filtering to the fork for better accuracy.
- **Explanation**:
- **BOS + Backtesting**: ensure OB is 'real' (not a false breakout); only draw after backtesting to avoid noise.
- **Strength**: (high-low)>ATR*1.5 indicates strong impulses, making OB more reliable.
- **Application**: Bullish OB = buy zone (support); Bearish OB = sell zone (resistance).
- **Limitations**: fixed backtesting period may miss late retracements; no volume/time filtering; few OBs in low-volatility markets.
- **Extensions**: add OB counts or Fibonacci extensions.
ICT订单块交易指标,用于识别“订单块”(Order Blocks, OB),基于结构突破(Break of Structure, BOS)与回测(Retest)机制。它通过检测摆动高/低点后的相反方向烛台,形成潜在供给/需求区域,仅在价格回测时确认并绘制有效OB。指标强调“真实”OB:需强冲动(> ATR * 乘数)与回测验证。
- **核心功能**:检测BOS(结构突破);查找前冲动相反烛台;验证强度与回测;绘制OB盒子与标签。
- **适用场景**:适合ICT策略、供给需求交易或反转识别。帮助过滤假突破,仅显示高概率区域。
- **显示模式**:叠加在主图上,使用盒子(boxes)显示OB,支持最大500个盒子。
- **限制**:回测期固定15柱;基于简单烛台(无成交量过滤);无自动清理旧OB(手动管理)。
指标无内置警报,但可扩展。数据使用ATR动态验证强度。
## 输入参数
输入参数简洁,分为核心设置与显示组。以下说明每个参数的默认值、类型和作用。
### 核心设置
- **Structure Lookback** (int, 默认: 10, 最小: 3):结构检测回溯期(ta.highest/lowest的长度)。较高值检测更强结构。
- **Minimum Impulse Strength (ATR ×)** (float, 默认: 1.5, 最小: 0.5):最小冲动强度((high-low) > ATR * 此值)。确保OB前有显著移动。
- **Bars to watch for Retest** (int, 默认: 15, 最小: 1):回测监控柱数。突破后N柱内价格回测OB区域才确认。
### 显示设置
- **Show Bullish OBs** (bool, 默认: true):显示看涨OB(需求区,回测后反弹)。
- **Show Bearish OBs** (bool, 默认: true):显示看跌OB(供给区,回测后反转)。
颜色固定:绿(看涨,80%透明)、红(看跌,80%透明)。
## 计算与显示
### 结构突破(BOS)检测
- **ATR计算**:ta.atr(14) 用于强度验证。
- **摆动高/低**:ta.highest(high, lookback) / ta.lowest(low, lookback) 识别结构。
- **BOS触发**:
- **bullBOS**:close > hh (上破前高)。
- **bearBOS**:close < ll (下破前低)。
### 订单块识别
- **getLastOppositeCandle(isBullish)**:
- 查找最近lookback柱内“相反”烛台(bullBOS: 熊烛 close < open;bearBOS: 牛烛 close > open)。
- 返回索引(idx);若无则na。
- **OB逻辑**(仅当showBullish/Bearish=true):
- **看涨OB (bullBOS)**:
- 查找前熊烛(idx),检查冲动:(high-low) > ATR * atrMult。
- 计算obLow=low ,obHigh=high 。
- 回测检查:15柱内low 在 内 → inRetest=true。
- 若确认:绘制绿盒(bar_index-idx 到当前,obLow到obHigh);标签“🟩 Bullish OB (Valid)”(左上,绿,80%透明,白文本)。
- 推入bullOBs数组。
- **看跌OB (bearBOS)**:对称,红盒,标签“🟥 Bearish OB (Valid)”(左下)。
- **数组管理**:var box bullOBs/bearOBs 存储所有OB;无自动清理(可扩展)。
### 显示元素
- **盒子**:动态从idx到当前柱,延伸显示OB区域。
- **标签**:确认时显示,位置基于obHigh/obLow。
- 无线条/填充;纯盒子+标签。
## 警报功能
指标无内置警报,但可通过TradingView警报扩展,例如:
- **新OB**:bullBOS and inRetest 或 bearBOS and inRetest。
- **回测**:价格进入OB范围。
建议添加alertcondition()自定义,如“Bullish OB Confirmed”。
## 使用提示
- **优化**:lookback=10平衡敏感;atrMult=1.5过滤弱冲动;retestBars=15适合日内。
- **自定义**:关闭showBullish/Bearish隐藏类型;fork添加成交量过滤提升准确。
- **解释**:
- **BOS+回测**:确保OB“真实”(非假突破);仅回测后绘制,避免噪音。
- **强度**:(high-low)>ATR*1.5表示强冲动,OB更可靠。
- **应用**:看涨OB=买入区(支撑);看跌OB=卖出区(阻力)。
- **局限**:回测期固定,可能错过晚回测;无成交量/时间过滤;低波动市场少OB。
- **扩展**:添加OB计数或斐波那契扩展。
Confluence Engine [BullByte]CONFLUENCE ENGINE
Multi-Factor Technical Analysis Framework
OVERVIEW
Confluence Engine is a multi-dimensional technical analysis framework that evaluates market conditions across five distinct analytical pillars simultaneously. Rather than relying on a single indicator or signal source, this tool synthesizes Structure, Momentum, Volume, Volatility, and Pattern analysis into a unified scoring system that identifies high-probability trading opportunities when multiple technical factors align.
The core philosophy behind this indicator stems from a fundamental observation: isolated signals frequently fail, but when multiple independent analytical methods agree, the probability of a successful trade increases substantially. This indicator was developed after extensive research into why traders often receive conflicting signals from different indicators on their charts, leading to analysis paralysis and poor decision-making.
THE PROBLEM AND SOLUTION
The Problem:
Most traders use multiple indicators independently, often receiving contradictory signals. One indicator says "buy" while another says "wait." This creates confusion and leads to missed opportunities, premature entries based on incomplete analysis, difficulty quantifying how strong a setup actually is, and inconsistent decision-making across different market conditions.
The Solution:
Confluence Engine addresses this by providing a single, unified score (0-100) that represents the aggregate strength of a trading setup. Instead of mentally weighing five different indicators, traders receive a clear numerical score indicating setup quality, visual tier classification (ULTRA, HIGH, STANDARD), specific identification of which factors are strong or weak, and actionable guidance on what to watch for next.
THE FIVE ANALYTICAL DIMENSIONS
Each dimension was selected because it measures a fundamentally different aspect of market behavior:
STRUCTURE ANALYSIS
Evaluates price position relative to key levels and recent swing points. Markets respect structure - previous highs, lows, and areas where price reversed. This dimension identifies when price interacts with these critical levels and measures the quality of that interaction.
What it detects: Price approaching or sweeping swing highs/lows, reclaim patterns after false breakouts, EMA alignment and trend structure, exhaustion after extended moves.
MOMENTUM ANALYSIS
Measures the underlying strength and direction of price movement. Strong moves are characterized by momentum preceding price. This dimension evaluates whether momentum supports the current price direction.
What it detects: Oversold/overbought conditions with reversal potential, momentum divergence states, directional movement strength (ADX-based), momentum shifts before price confirmation.
VOLUME ANALYSIS
Volume validates price movement. Significant moves require participation. This dimension measures current volume relative to recent averages to determine if market participants are genuinely committing to the move.
What it detects: Volume spikes confirming price action, below-average volume warning of weak moves, climactic volume at potential reversals, volume confirmation of rejection patterns.
VOLATILITY ANALYSIS
Markets alternate between compression (low volatility) and expansion (high volatility). This dimension identifies these phases and recognizes when compression is likely to resolve into directional movement.
What it detects: Volatility squeeze conditions (Bollinger inside Keltner), squeeze release direction, ATR expansion indicating breakout potential, compression duration for timing breakouts.
PATTERN ANALYSIS
Candlestick patterns reflect the battle between buyers and sellers within each bar. This dimension evaluates the quality and context of reversal and continuation patterns.
What it detects: Engulfing patterns with quality scoring, hammer and shooting star formations, rejection wicks indicating trapped traders, pattern confluence with other factors.
WHAT MAKES THIS INDICATOR ORIGINAL Not a mashup
This is NOT a mashup of indicators displayed together. The Confluence Engine represents an integrated analytical framework with the following unique characteristics:
Unified Scoring System: All five dimensions feed into a proprietary scoring algorithm that weights and combines their signals. The output is a single 0-100 score, not five separate readings.
Multi-Factor Gate: Beyond just scoring, the system requires a minimum number of factors to be "active" (meeting their individual thresholds) before allowing signals. This prevents signals based on one extremely strong factor masking four weak ones.
Regime-Aware Adjustments: The engine detects the current market regime (trending, ranging, volatile, weak) and automatically adjusts factor weights and score multipliers. A structure signal means something different in a trending market versus a ranging market.
Adaptive Risk Management: Take-profit and stop-loss levels are not static. They adapt based on current volatility, market regime, and signal quality - providing tighter targets in low-volatility environments and wider targets when volatility expands.
Liquidity Sweep Detection: A distinctive feature that identifies when price has swept beyond a swing high/low and then reclaimed back inside. This pattern often indicates stop hunts followed by reversals.
Signal Quality Tiers: Rather than just "signal" or "no signal," the engine classifies setups into tiers. ULTRA (80+) represents highest probability setups with all factors aligned. HIGH (70-79) represents strong setups with multiple factors confirming. STANDARD meets minimum threshold for acceptable setups.
HOW THE SCORING WORKS
Each of the five factors generates a raw score from 0-100 based on current market conditions. These raw scores are then weighted according to the selected trading style (Balanced, Scalper, Swing, Range, Trend), adjusted based on current market regime detection, modified by higher timeframe alignment (if enabled), bonused when multiple factors exceed their activation thresholds simultaneously, and multiplied by session factors (if session filter is enabled).
The result is a final Bull Score and Bear Score, each ranging from 0-100, representing the current strength of long and short setups respectively.
Signal Generation Requirements:
- Score meets minimum threshold (configurable: 60-95)
- Required number of factors are "active" (default: 3 of 5)
- Market regime is not blocked (if blocking enabled)
- Higher timeframe alignment passes (if required)
- Cooldown period from last signal has elapsed
UNDERSTANDING THE DASHBOARDS
Main Dashboard (Top Right)
The main dashboard displays real-time scores and market context:
LONG Score - Current bullish setup strength (0-100) with quality tier displayed
SHORT Score - Current bearish setup strength (0-100) with quality tier displayed
Regime - Current market state showing TREND UP, TREND DN, VOLATILE, RANGE, or WEAK
HTF - Higher timeframe alignment showing BULL, BEAR, NEUT, or OFF
Squeeze - Volatility state showing SQZ (in squeeze), REL+ (bullish release), REL- (bearish release), or NORM
Gate - Factor count versus requirement, for example 4/3 means 4 factors active with 3 required
Sweep L/S - Liquidity sweep status for long and short setups
ATR% - Current ATR as percentile of recent range indicating relative volatility
Vol - Current volume relative to 20-period average
R:R - Current risk-reward ratio based on adaptive TP/SL calculations
Trade - Active trade status and unrealized profit/loss percentage
Analysis Dashboard (Bottom Left)
The analysis dashboard provides actionable guidance:
Signal Readiness - Visual progress bars showing how close each direction is to generating a signal
Blocking Factors - Identifies which specific factor is weakest and preventing signals
Recommended Action - Context-aware guidance such as WATCH, WAIT, MANAGE, or SCAN
Watch For - Specific events to monitor for setup completion
Opportunity Level - Overall market opportunity rating from EXCELLENT to VERY POOR
Timing - Contextual timing guidance based on current conditions
Status Bar (Bottom Center)
Compact view displaying Long Score, Gate Status, Current State, Gate Status, and Short Score in a single row for quick reference.
Dashboard Size - Auto Mode Explained
When Dashboard Size is set to "Auto", the indicator intelligently adjusts text size based on your current chart timeframe to optimize readability:
Auto-Sizing Logic:
1-Minute to 5-Minute Charts → Tiny
- Lower timeframes show more bars on screen
- Tiny text prevents dashboard from obscuring price action
- Recommended for scalping and high-frequency monitoring
15-Minute Charts → Small
- Balanced size for intraday trading
- Readable without being intrusive
1-Hour to Daily Charts → Normal
- Standard size for most trading styles
- Optimal readability for swing trading
Weekly and Monthly Charts → Large
- Larger text for position trading
- Fewer bars visible so space is available
Manual Override:
You can override auto-sizing for any dashboard individually:
- Dashboard Size (All): Sets master size applied to all dashboards
- Main Dashboard Size: Override for top-right dashboard specifically
- Analysis Panel Size: Override for bottom-left panel specifically
- Status Bar Size: Override for bottom-center bar specifically
Example Use Case:
Trading on 5m chart (default = Tiny) but you have good eyesight and large monitor:
- Set "Dashboard Size (All)" to "Small" or "Normal" for better readability
- Individual dashboards will use your override instead of auto-sizing
Recommendation:
Start with Auto mode and only adjust if dashboards are too large or too small for your monitor/eyesight.
UNDERSTANDING SIGNAL LABELS
When a signal generates, a label appears with trade information:
Minimal Style Example:
LONG 85
Shows tier icon, direction, and score only.
Detailed Style Example:
ULTRA LONG
Score: 85
Entry: 50250.50
TP1: 50650.25
TP2: 51500.75
SL: 49850.25
R:R 1:2.5
Regime: TREND UP
HTF: BULL
Tier Icons Explained:
indicates ULTRA quality with score 80 or higher
indicates HIGH quality with score between 70 and 79
indicates STANDARD quality with score meeting minimum threshold
UNDERSTANDING TRADE ZONES
When a signal generates, visual elements appear on the chart:
Entry Line (Purple) marks the entry price level
TP1 Line (Blue Dashed) marks the first take-profit target
TP2 Line (Cyan Dashed) marks the final take-profit target
SL Line (Orange Dotted) marks the stop-loss level
Trade Zone Box shows shaded area from SL to TP2
These elements extend forward as price progresses. When TP1 is hit, its line becomes solid to indicate achievement. When the trade completes at either TP2 or SL, all elements are cleaned up and the entry label converts to a compact ghost label for historical reference.
Exit Labels Explained:
+X.XX% indicates first target reached with partial profit secured
+X.XX% indicates full target reached with maximum profit achieved
-X.XX% indicates stop-loss triggered
TP1 Hit, SL... indicates stopped out after TP1 was already hit (optional display)
OPPOSITE SIGNAL HANDLING
When market conditions shift dramatically, the engine may generate a signal in the opposite direction while an existing trade is active. This represents a significant change in confluence and is handled automatically:
Automatic Trade Reversal Process:
1. Detection: New signal triggers opposite to current trade direction (e.g., SHORT signal while LONG trade is active)
2. Current Trade Closure:
- All visual elements (entry line, TP/SL lines, trade zone) are deleted
- Current trade is marked as closed
3. Entry Label Conversion:
- The detailed entry label is converted to a compact ghost label
- Ghost label shows direction + score (e.g., "LONG 75")
- Marked with "OPP" outcome to indicate opposite signal closure
- Moved to a non-interfering position below/above price
4. New Trade Initialization:
- Fresh entry label created for new direction
- New TP1, TP2, SL levels calculated based on new signal quality
- Trade zone and price lines drawn for new trade
Example Scenario:
You enter a LONG trade at score 72. Price moves sideways for 8 bars, then market structure breaks down. Confluence shifts heavily bearish with a sweep reclaim bear + momentum + volume spike, generating a SHORT signal at score 81. The engine automatically:
- Closes the LONG trade
- Converts "LONG 72" entry label to a small ghost label
- Opens new SHORT trade at current price
- Displays new SHORT entry label with full trade details
Trading Implication:
This behavior ensures the engine is always aligned with the highest-probability direction based on current confluence. It prevents you from holding a position when all five factors have flipped against you.
Note: This does NOT happen for every small score change. The opposite signal must meet all signal generation requirements (minimum score, gate pass, regime check, HTF alignment) before triggering. Typically occurs during strong trend reversals or major support/resistance breaks.
EXAMPLE TRADE : LONG
Instrument and Exchange: Bitcoin / TetherUS (BTC/USDT) on Binance
Timeframe: 5-minute
Timestamp: Nov 27, 2025 12:39 UTC
Indicator Script: Confluence Engine v1.0
Trade Type: Long (Example Trade)
Setting Used: Default
Signal Details:
- Tier: HIGH
- Score: 70
- Entry Price: 90040.70
- TP1 Target: 90868.63
- TP2 Target: 92110.52
- Stop Loss: 89325.94
- Risk Reward: 1:2.9
Trade Outcome:
- TP1 hit after 12 bars (+0.95%)
- TP2 hit after 28 bars (+2.85%)
- Total gain: +2.85% on full position
EXAMPLE TRADE : SHORT with Dashboard Explanation and interpretation
Instrument and Exchange: Ethereum / U.S. Dollar (ETH/USD) — Coinbase
Timeframe: 1-hour
Timestamp (screenshot): Nov 28, 2025 16:41 UTC
Indicator Script: Confluence Engine v1.0
Trade Type: Short (Example Trade)
Setting Used: Default
Signal Details
-Tier: STANDARD (STD)
-Score: 64
-Entry Price: 3037.26
-TP1 Target: 2981.61 (-55.65 pts)
-TP2 Target: 2898.12 (-139.14 pts)
-Stop Loss: 3099.79 (+62.53 pts)
-Risk:Reward: ≈ 1 : 2.2 (TP2/SL)
-Market Context at Signal
-Regime: TREND UP (contextual regime at time of signal) — mixed environment for shorts
-HTF Alignment: OFF (no higher-timeframe confirmation)
-Gate Status: 3 / 3 (minimum factor groups active — gate passed)
-Squeeze Status: NORM (no active compression breakout)
-Volume: ~1.8× average (elevated participation)
-ATR%: 57% (elevated volatility)
Analysis Dashboard Reading (what the user sees)
-Long Readiness: Needs +36 points to qualify.
-Short Readiness: Needs +11 points to qualify (closer but not auto-entering).
-Blocking Factors: Structure = 0 — the single decisive blocker preventing fresh signals.
-Opportunity Level: VERY POOR (roughly 20 / 100) — low quality environment for adding positions.
-Timing: Wait for better setup (do not add new positions).
-Trade Outcome (screenshot moment)
-Trade state: Active SHORT (opened earlier).
-Live P&L (snapshot): +0.14% (managing trade).
-TP1/TP2: Targets shown on chart (TP1 2981.61, TP2 2898.12). Not closed yet at screenshot.
-Visuals: Entry label, TP/SL lines and trade zone are displayed and being extended while trade is active.
Interpretation
The engine produced a standard short (Score 64) while the market showed elevated volume and volatility but no HTF confirmation. Although the Gate passed (3/3), Structure = 0 blocks the indicator from issuing fresh entries — this is intentional and by design: one missing factor (structure) is enough to prevent new signals even when other factors look supportive. The currently open short is being managed (partial targets and SL visible), but the system's recommendation is to manage the existing trade only and not open new shorts until structure or HTF alignment improves.
Why this example matters (teaching point)
-Gate ≠ Go: Gate pass (factor count) alone does not force fresh trades — the system enforces additional checks (structure, regime, HTF) to avoid lower-quality setups.
-Volume & Volatility are necessary but not sufficient: High volume and wide ATR create movement but do not replace structural validation.
-Active trade vs new entries: The script will continue to manage an already open trade but will not create a new signal while a blocking factor remains. This prevents overtrading and reduces false positives.
-Practical trader actions shown by the example
-Manage existing SHORT only: Trail to breakeven if TP1 is taken; scale out at TP1; hold remaining if price respects trend and structure reclaims.
-Do not add fresh positions: Wait for Structure > 0 or a HTF alignment that lifts the block.
-Watch for signals that matter: Sweep reclaim, HTF alignment turning bullish for shorts (i.e., HTF changes to BEAR), or a squeeze release with volume spike — these can clear the blocker and validate new entries.
RECOMMENDED TIMEFRAMES
For Scalping on 1m, 5m, or 15m charts: Use higher factor thresholds and shorter cooldowns. The faster pace requires stricter filtering.
For Day Trading on 15m, 30m, or 1H charts: This provides a balance of signal frequency and reliability suitable for most active traders.
For Swing Trading on 1H, 4H, or Daily charts: Expect higher quality signals with longer hold periods and fewer false signals.
For Position Trading on Daily or Weekly charts: Focus on ULTRA signals only for maximum conviction on longer-term positions.
Higher Timeframe Alignment Recommendations:
When trading 5m, use 1H as your HTF
When trading 15m, use 1H or 4H as your HTF
When trading 1H, use 4H or Daily as your HTF
When trading 4H, use Daily as your HTF
The general rule is to select an HTF that is 4 to 12 times your trading timeframe.
TRADING STYLE PRESETS
Balanced (Default)
Equal weighting across all five factors at 20% each. Suitable for most market conditions and recommended as starting point.
Scalper
Emphasizes Volume at 30% and Volatility at 30%. Designed for quick in-and-out trades on lower timeframes where immediate momentum and volatility expansion matter most.
Swing Trader
Emphasizes Structure at 30% and Momentum at 30%. Focuses on catching larger moves where trend direction and key levels are paramount.
Range Trader
Emphasizes Structure at 35% and Pattern at 25%. Optimized for sideways markets where support/resistance levels and reversal patterns dominate.
Trend Follower
Emphasizes Momentum at 40%. Designed for trending markets where staying with the dominant direction is the priority.
QUALITY MODE SETTINGS
Custom Mode
Set your own minimum score threshold. Lower thresholds between 60 and 65 generate more signals but with lower average quality. Higher thresholds of 75 or above generate fewer but higher-quality signals.
High Quality Mode
Uses minimum score of 70. Recommended for most users as it filters out marginal setups while still providing reasonable signal frequency.
Ultra Only Mode
Uses minimum score of 80 for maximum selectivity. Only the highest-conviction setups generate signals. Recommended for swing and position traders or during uncertain market conditions.
REGIME DETECTION
The engine continuously evaluates market conditions and classifies them into five states:
TREND UP
Characteristics: Strong ADX reading with EMAs aligned in bullish order
Trading Implications: Long signals receive score boost while short signals are suppressed. Momentum factor gains additional weight.
TREND DN
Characteristics: Strong ADX reading with EMAs aligned in bearish order
Trading Implications: Short signals receive score boost while long signals are suppressed. Momentum factor gains additional weight.
VOLATILE
Characteristics: High ATR percentile, wide Bollinger Bands, elevated volume
Trading Implications: Both directions remain viable but wider stops are recommended. Volume factor gains additional weight.
RANGE
Characteristics: Low ADX reading, narrow Bollinger Bands, low ATR percentile
Trading Implications: Structure signals are emphasized while momentum signals are suppressed. Pattern recognition becomes more important.
WEAK
Characteristics: Unclear or mixed conditions that do not fit other categories
Trading Implications: Reduced confidence in all signals. Consider waiting for clearer market conditions.
Filter Mode Options:
Off - Regime is detected and displayed but no score adjustments are applied
Adjust Scores - Automatically modifies factor weights based on current regime
Block Weak Regimes - Prevents signals from generating when regime is RANGE or WEAK
VOLATILITY SQUEEZE DETECTION
A volatility squeeze occurs when Bollinger Bands contract inside the Keltner Channel, indicating reduced volatility and potential energy building for a breakout.
Squeeze States Explained:
SQZ with bar count (example: SQZ 15)
Indicates currently in squeeze for the displayed number of bars. A score penalty is applied during this phase because compression represents uncertainty about direction.
REL+ (Release Bullish)
Indicates squeeze has released with price above the basis line. Score bonus is applied for long setups as this often precedes strong upward moves.
REL- (Release Bearish)
Indicates squeeze has released with price below the basis line. Score bonus is applied for short setups as this often precedes strong downward moves.
NORM (Normal)
No active squeeze detected. Standard scoring applies.
Trading Implication:
Squeeze releases often produce strong directional moves. The engine detects both the squeeze duration and the release direction, awarding bonus points to signals that align with the release. Longer squeeze duration often corresponds to more powerful breakouts.
LIQUIDITY SWEEP DETECTION
Markets often sweep beyond obvious support and resistance levels to trigger stops before reversing. The engine detects these patterns:
Bullish Sweep Reclaim
Price sweeps below recent swing low, triggering stop losses, then reclaims back above the swing low. This often indicates smart money accumulation after retail stops are collected.
Bearish Sweep Reclaim
Price sweeps above recent swing high, triggering stop losses, then reclaims back below the swing high. This often indicates smart money distribution after retail stops are collected.
Sweep Status in Dashboard:
RCL (Reclaim) - Reclaim has been confirmed. This receives highest structure score as the pattern is complete.
PND (Pending) - Sweep has occurred and price is near the level but full reclaim not yet confirmed. Watching for completion.
ACT (Active) - Sweep is currently in progress with price beyond the swing level.
Dash (-) - No sweep activity detected.
MULTI-FACTOR GATE SYSTEM
Beyond overall score, the engine counts how many individual factors meet their activation threshold.
Example Calculation:
Structure score 45 with threshold 35 equals ACTIVE
Momentum score 25 with threshold 30 equals INACTIVE
Volume score 50 with threshold 35 equals ACTIVE
Volatility score 40 with threshold 30 equals ACTIVE
Pattern score 35 with threshold 30 equals ACTIVE
Result: 4 of 5 factors are active
If minimum required factors is set to 3, this example passes the gate and receives a 4-factor bonus.
Gate Bonuses:
4 factors active adds 8 points to final score (default setting)
5 factors active adds 15 points to final score (perfect confluence)
Purpose:
This mechanism prevents scenarios where one extremely high factor score masks four weak factors. A score of 75 with only 2 active factors is less reliable than a score of 70 with 4 active factors.
ADAPTIVE RISK MANAGEMENT
Take-profit and stop-loss distances adjust dynamically based on three inputs:
Volatility Influence (default 40% weight)
Low ATR percentile produces tighter targets
High ATR percentile produces wider targets
This ensures stops are not too tight in volatile conditions or too wide in calm conditions.
Regime Influence (default 30% weight)
Trending market with aligned signal produces extended targets
Ranging market produces contracted targets
Volatile regime produces wider stops for protection
Score Influence (default 30% weight)
ULTRA signals (high conviction) receive extended targets
STANDARD signals receive standard targets
Higher conviction justifies larger profit expectations.
You can configure the weight of each influence in settings to match your trading style.
SESSION FILTER (Optional Feature)
When enabled, the engine applies score multipliers based on the trading session:
Asian Session (default 0.9x multiplier)
Characterized by lower volatility and ranging tendency. Score reduction reflects reduced opportunity.
London Session (default 1.1x multiplier)
Characterized by high volatility and trend initiation. Score boost reflects increased opportunity.
London/NY Overlap (default 1.2x multiplier)
Characterized by highest liquidity and strongest moves. Maximum score boost reflects peak trading conditions.
New York Session (default 1.05x multiplier)
Characterized by volatility but typically after initial moves have occurred.
Configure your UTC offset in settings to align session detection with your chart timezone.
ALERT SYSTEM
The indicator provides comprehensive alerts with dynamic data:
Signal Alerts:
- ULTRA Long Signal with full trade details
- ULTRA Short Signal with full trade details
- HIGH Long Signal with key levels
- HIGH Short Signal with key levels
- Any Long Signal with basic info
- Any Short Signal with basic info
Trade Management Alerts:
- TP1 Reached with profit percentage
- TP2 Full Target with total profit
- Stop Loss Hit with loss percentage and status
Technical Event Alerts:
- Squeeze Release
- Liquidity Sweep
- Perfect Confluence
- Regime Change
All alerts include actual calculated values such as score, entry price, target levels, stop level, and risk-reward ratio at the time of trigger.
AUTOMATIC SETTINGS VALIDATION
The indicator performs comprehensive validation when first loaded on a chart. If configuration errors are detected, a warning label appears on the chart with specific guidance.
Critical Errors (Prevent Signal Generation):
ULTRA threshold must exceed HIGH threshold
- Example error: HIGH = 75, ULTRA = 70
- Fix: Ensure ULTRA threshold is higher than HIGH threshold
- Default safe values: HIGH = 70, ULTRA = 80
Minimum factors cannot exceed 5
- The gate requires 3 to 5 factors (you cannot require 6 of 5 factors)
- Fix: Set minimum active factors to 3, 4, or 5
TP2 multiplier must exceed TP1 multiplier
- Example error: TP1 = 3.0 ATR, TP2 = 2.0 ATR
- Fix: Ensure TP2 (final target) is farther than TP1 (partial target)
- Default safe values: TP1 = 2.0, TP2 = 5.0
Swing lookback minimum is 3 bars
- Liquidity sweep detection requires at least 3 bars to identify swing highs/lows
- Fix: Increase swing lookback period to 3 or higher
ATR period minimum is 5 bars
- ATR calculation requires sufficient data for accuracy
- Fix: Increase ATR period to 5 or higher (14 recommended)
Higher timeframe must be larger than chart timeframe
- Example error: Trading on 1H chart with MTF set to 15m
- Fix: Select HTF that is 4-12x your chart timeframe
- Example: If trading 15m, use 1H or 4H as HTF
Warnings (Signal Generation Continues):
Score threshold below 50 generates many signals
- Lower thresholds increase signal frequency but reduce quality
- Recommendation: Use minimum 60 for active trading, 70+ for swing trading
Cooldown below 3 bars may cause signal clustering
- Very short cooldowns can produce multiple signals in quick succession
- Recommendation: Use 5+ bars for lower timeframes, 3+ for higher timeframes
Validation Label Display:
When errors are detected, a label appears at the top of the chart showing:
SETTINGS QUICK REFERENCE
Signal Quality Section:
Quality Mode: High Quality recommended for most users
Custom Minimum Score: Used when Quality Mode is set to Custom (range 30-95)
HIGH Threshold: Score required for HIGH tier classification (default 70)
ULTRA Threshold: Score required for ULTRA tier classification (default 80)
Regime Engine Section:
Enable Regime Detection: Activates automatic market state classification
Filter Mode: Off, Adjust Scores, or Block Weak Regimes
ADX Strong Threshold: ADX level indicating strong trend (default 25)
ADX Weak Threshold: ADX level indicating ranging conditions (default 15)
Show Regime Background: Displays subtle background color for current regime
Liquidity and Squeeze Section:
Enable Liquidity Sweep Detection: Activates sweep and reclaim pattern detection
Swing Lookback Period: Bars used to identify swing highs and lows (default 8)
Reclaim Threshold: Percentage of range price must reclaim after sweep (default 15%)
Enable Volatility Squeeze Detection: Activates Bollinger/Keltner squeeze detection
Keltner Channel Multiplier: Width multiplier for Keltner Channel (default 1.5)
Squeeze Penalty: Points subtracted during active squeeze (default 25)
Squeeze Release Bonus: Points added on squeeze release (default 20)
Enable Multi-Factor Gate: Requires minimum factors active before signaling
Minimum Active Factors: How many factors must meet threshold (default 3)
Individual Factor Thresholds: Customize activation threshold for each factor
4-Factor Bonus: Points added when 4 of 5 factors active (default 8)
5-Factor Bonus: Points added when all 5 factors active (default 15)
MTF Confluence Section:
Enable MTF Confluence: Activates higher timeframe trend analysis
Higher Timeframe: Select timeframe for trend alignment (recommend 4-12x chart TF)
Require HTF Alignment: Block signals opposing higher timeframe trend
Show HTF EMAs: Display higher timeframe EMA 21 and EMA 50 on chart
Trading Style Section:
Enable Style Weighting: Activates factor weight adjustments based on style
Trading Style: Balanced, Scalper, Swing Trader, Range Trader, or Trend Follower
Custom Weights: Individual weight sliders when fine-tuning is needed
Session Filter Section:
Enable Session Filter: Activates session-based score multipliers
Your UTC Offset: Your timezone offset for accurate session detection
Session Multipliers: Individual multipliers for Asian, London, New York, and Overlap sessions
Risk Parameters Section:
ATR Period: Period for Average True Range calculation (default 14)
TP1 ATR Multiple: First target distance as ATR multiple (default 2.0)
TP2 ATR Multiple: Final target distance as ATR multiple (default 5.0)
SL ATR Multiple: Stop loss distance as ATR multiple (default 2.0)
Enable Adaptive TP/SL: Activates dynamic adjustment based on conditions
Volatility Weight: Influence of ATR percentile on adaptive calculation (default 40%)
Regime Weight: Influence of market regime on adaptive calculation (default 30%)
Score Weight: Influence of signal score on adaptive calculation (default 30%)
Appearance Section:
Color Theme: Matrix (green/red), Dark (modern dark), or Light (clean light)
Label Detail: Minimal (score only), Standard (key info), or Detailed (full breakdown)
Dashboard Size Controls: Master size and individual overrides for each dashboard
Show Trade Zones: Display shaded box from SL to TP2 for active trades
Show TP/SL Labels: Display price labels on target and stop lines
Show Trailing Exit Labels: Display exit label when stopped after TP1 hit
Show Main Dashboard: Toggle main dashboard visibility (top right)
Show Analysis Dashboard: Toggle analysis panel visibility (bottom left)
Show Status Bar: Toggle compact status bar visibility (bottom center)
Performance Section:
Performance Mode: Reduces visual elements on lower timeframes automatically
Max Ghost Labels: Maximum historical signal labels to retain (default 50)
Signal Cooldown: Minimum bars between signals in same direction (default 5)
Enable Script Alerts: Controls whether alert() calls fire automatically (default ON)
- ON: Dynamic alerts with calculated values fire automatically
- OFF: alert() suppressed, alertcondition() still available for manual creation
- Use OFF when testing settings or monitoring multiple instruments visually
- Toggle per-chart for selective alert coverage across watchlist
Show Factor Markers: Display shapes on chart when 3, 4, or 5 factors align
Show Score Breakdown: Display detailed factor scores table in debug panel
Show Regime Debug: Display regime state and ADX value in debug panel
Show MTF Debug: Display higher timeframe status in debug panel
DEBUG MODE AND FACTOR MARKERS
The indicator includes optional debug tools for traders who want deeper insight into the scoring mechanics and factor analysis. These features are disabled by default to keep the chart clean but can be enabled in the Debug Mode settings group.
FACTOR MARKERS
When "Show Factor Markers" is enabled, visual shapes appear on the chart indicating confluence states:
Perfect Confluence (5/5 Factors Active)
A circle appears below the bar for bullish or above the bar for bearish setups. This represents maximum confluence where all five analytical dimensions meet their activation thresholds simultaneously. A small label showing "5/5" also appears. This is a rare occurrence and typically precedes the highest quality signals. Background color shifts to highlight this exceptional alignment.
Strong Confluence (4/5 Factors Active)
A diamond shape appears below the bar for bullish or above the bar for bearish setups. This represents strong confluence with four of five factors active. A label showing "4/5" appears when this state is first achieved. This level of confluence is associated with high-quality setups.
Ready Confluence (3/5 Factors Active)
A triangle appears below the bar (pointing up) for bullish or above the bar (pointing down) for bearish setups. This represents the minimum confluence level required when gate is set to 3 factors. No label appears for this level to reduce visual clutter.
Confluence Background
When factor markers are enabled, a subtle background color appears indicating the current confluence state. Stronger colors indicate higher confluence levels. Bullish confluence shows green tints while bearish confluence shows red tints.
Purpose of Factor Markers:
These markers help traders visualize when confluence is building before a signal triggers. You might see a 4/5 diamond appear one or two bars before the actual signal, giving you advance notice that conditions are aligning. This can help with preparation and timing.
DEBUG PANEL (Bottom Right)
When any debug option is enabled, a debug panel appears in the bottom right corner of the chart providing detailed scoring information.
Score Breakdown Table
When "Show Score Breakdown" is enabled, the panel displays:
Factor column showing Structure, Momentum, Volume, Volatility, and Pattern
Bull column showing raw score (0-100) for each bullish factor
Bear column showing raw score (0-100) for each bearish factor
Weight column showing current percentage weight for each factor
Below the factor rows :
FINAL row shows the calculated final Bull and Bear scores after all adjustments
Adj row shows total adjustments applied including gate bonus, squeeze adjustment, and exhaustion adjustment with positive or negative sign
This breakdown allows you to see exactly which factors are contributing to the score and which are lagging. If you notice Structure consistently low, you know to wait for better price positioning relative to swing levels.
Regime Debug
When "Show Regime Debug" is enabled, the panel displays:
Current regime state (TREND UP, TREND DN, VOLATILE, RANGE, WEAK)
Current ADX value driving the regime classification
This helps you understand why certain score adjustments are being applied and verify the regime detection is working as expected for current market conditions.
MTF Debug
When "Show MTF Debug" is enabled, the panel displays:
Current MTF alignment status (BULL, BEAR, NEUT)
The higher timeframe being analyzed
This confirms the higher timeframe data is being read correctly and shows you the trend bias from the larger timeframe perspective.
Using Debug Mode Effectively
For Learning: Enable all debug options when first using the indicator to understand how scores are calculated and what drives signal generation.
For Optimization: Use score breakdown to identify which factors are consistently weak in your chosen market and timeframe. This can inform whether to adjust factor thresholds or switch trading styles.
For Troubleshooting: If signals seem inconsistent, enable debug to see exactly what values the engine is working with. This helps identify if a specific factor is behaving unexpectedly.
For Live Trading: Disable debug features to keep chart clean and reduce visual distraction. The main dashboards provide sufficient information for trade execution.
Debug Settings Summary:
Show Factor Markers - Displays shapes on chart when 3, 4, or 5 factors align. Useful for seeing confluence build before signals trigger.
Show Score Breakdown - Displays detailed table with all raw factor scores, weights, and adjustments. Useful for understanding exactly how final score is calculated.
Show Regime Debug - Adds regime state and ADX value to debug panel. Useful for verifying regime detection accuracy.
Show MTF Debug - Adds higher timeframe status and timeframe to debug panel. Useful for confirming MTF data is loading correctly.
PERFORMANCE CONSIDERATIONS
On lower timeframes such as 1-minute and 5-minute charts, the indicator creates visual elements including labels, lines, and boxes that may impact performance on slower devices.
Performance Mode automatically reduces visual elements, optimizes calculation frequency, and limits historical ghost labels when enabled.
Configure Max Ghost Labels (default 50) to control how many historical signal labels are retained on the chart.
NON-REPAINTING DESIGN
Signal Integrity:
All entry and exit signals generate only on confirmed (closed) bars using barstate.isconfirmed checks. This ensures signals do not appear and disappear during bar formation.
Higher Timeframe Data:
MTF analysis uses request.security with lookahead disabled (barmerge.lookahead_off) to prevent future data from influencing current calculations.
Visual Elements:
Lines, boxes, and labels for active trades update in real-time for monitoring purposes but this visual updating does not affect signal generation logic. Entry decisions are made solely on confirmed bar data.
DISCLAIMER
Trading financial instruments involves substantial risk of loss and is not suitable for all investors. Past performance does not guarantee future results. This indicator is a technical analysis tool provided for educational purposes only. It does not constitute financial advice, trading recommendations, or solicitation to buy or sell any financial instrument.
The developer makes no representations regarding the accuracy of signals or the profitability of trading based on this indicator. Users assume full responsibility for their trading decisions and should conduct their own analysis before entering any trade.
Always use proper risk management. Never risk more than you can afford to lose. Consider consulting a qualified financial advisor before making trading decisions.
VERSION HISTORY
v1.0 - Initial Release
- Five-factor confluence scoring system
- Regime detection and automatic adaptation
- Liquidity sweep and reclaim detection
- Volatility squeeze state machine
- Multi-factor gate with bonus system
- Adaptive risk management
- Comprehensive alert system
- Three dashboard display panels
- Session filter with multipliers
- Multiple trading style presets
- Theme customization options
Developed by BullByte
Pine Script v6
2025
The Strat - Levels [rdjxyz]◆ OVERVIEW
The Strat - Levels dynamically displays key levels used in The Strat trading methodology, developed by Rob Smith. The level colors are dynamically determined by their Strat classification (1, 2 up, failed 2 up, 2 down, failed 2 down, 3)—making it easy to recognize higher timeframe Strat candle classifications from any lower timeframe.
◆ DETAILS
If you're unfamiliar with The Strat, there are 3 universal scenarios regarding candle behavior:
SCENARIO ONE
The 1 Bar - Inside Bar: A candle that doesn't take out the highs or the lows of the previous candle; aka consolidation.
SCENARIO TWO
The 2 Bar - Directional Bar: A candle that takes out one side of the previous candle; aka trending (or at least attempting to trend).
These can be broken down even further as follows:
2 Up: A candle that takes out the high of the previous candle and closes bullish
Failed 2 Up: A candle that takes out the high of the previous candle and closes bearish
2 Down: A candle that takes out the low of the previous candle and closes bearish
Failed 2 Down: A candle that takes out the low of the previous candle and closes bullish
SCENARIO THREE
The 3 Bar - Outside Bar: A candle that takes out both sides of the previous candle; aka broadening formation.
◇ HOW THE DYNAMIC LEVEL COLORING WORKS
PREVIOUS LEVELS
Previous Day High/Low
Previous Week High/Low
Previous Month High/Low
Previous Quarter High/Low
Previous Year High/Low
Each period's levels are compared to their previous period's levels and colored according to the 3 universal scenarios, which are fixed based on historical data. (No repainting)
CURRENT LEVELS
Current Day Open
Current Week Open
Current Month Open
Current Quarter Open
Current Year Open
Each current period's levels (high, low, and current price) are compared to the previous period's levels and current period's open on every tick—changing colors in real-time as their Strat classification changes. (Will repaint as price action evolves)
E.g. When a new day opens inside of the previous day's range (high/low) the Day Open line will be gray (default for inside bars). When the current day trades above the previous day's range, the Day Open line will become aqua (default for 2 up). If price trades back below the current day's open, the Day Open line will become fuchsia (default for failed 2 up). And if price trades below the previous day's range, the Day Open line will become dark purple (default for 3s).
◆ SETTINGS
Current Day Open
Previous Day High/Low
Current Week Open
Previous Week High/Low
Current Month Open
Previous Month High/Low
Current Quarter Open
Previous Quarter High/Low
Current Year Open
Previous Year High/Low
Strat Colors
Each Current Level Open has 4 inputs:
Show/Hide Checkbox
Line Style
Line Width
Label Offset (Integer)
Each Previous Level High/Low has 5 inputs:
Show/Hide High Checkbox
Show/Hide Low Checkbox
Line Style
Line Width
Label Offset (Integer)
And each Strat scenario can be custom colored:
1-Bar Color - Default Gray
2-Up Color - Default Aqua
Failed 2-Up Color - Default Fuchsia
2-Down Color - Default White
Failed 2-Down Color - Default Teal
3-Bar Color - Default Dark Purple
◆ USAGE
There are 3 ways to look at these levels:
Potential continuation (e.g. Previous Day's 2-Up High being broken by Current Day's Price)
Potential reversal (e.g. Previous Day's 2-Down High being broken by Current Day's Price)
Potential exhaustion risk (e.g. Previous Month's Low is broken by Current Day's Price but trades back up into the Previous Month's range)
It's best to use this indicator with a separate indicator that color codes your chart's candles according to their Strat Scenario (1, 2, 3) and use top-down analysis to gauge whether to view levels as a sign of continuation, reversal, or exhaustion risk.
◆ WRAP UP
As demonstrated, The Strat - Levels offers Strat Scenario color-coded key levels, making it easy to identify the previous period's Strat Scenario (1, 2-Up, Failed 2-Up, 2-Down, Failed 2-Down, or 3) without needing to manually plot levels or refer to higher timeframes.
◆ DISCLAIMER
This indicator is a tool for visual analysis and is intended to assist traders who follow The Strat methodology. As with any trading methodology, there's no guarantee of profits; trading involves a high degree of risk and you could lose all of your invested capital. Use of this indicator is not indicative of future results and does not constitute and should not be construed as investment advice. All trading decisions and investments made by you are at your own discretion and risk. Under no circumstances shall the author be liable for any direct, indirect, or incidental damages. You should only risk capital you can afford to lose.
Indices ALN SessionsIndices ALN Sessions - Pattern Analysis with Historical Probabilities
Overview
This indicator analyzes overnight trading patterns across Asia, London, and New York sessions for major index futures (NQ, ES, YM), providing real-time probability analysis based on 15 years of historical data (2010-2025).
Pattern Detection Methodology
The indicator detects four distinct overnight patterns by comparing session high/low relationships:
1. London Engulfs Asia
Condition: London High > Asia High AND London Low < Asia Low
Interpretation: London session completely engulfed the Asia range
2. Asia Engulfs London
Condition: Asia High > London High AND Asia Low < London Low
Interpretation: London session remained within Asia's range
3. London Partial Up
Condition: London High > Asia High AND London Low ≥ Asia Low
Interpretation: London broke Asia high but not its low
4. London Partial Down
Condition: London Low < Asia Low AND London High ≤ Asia High
Interpretation: London broke Asia low but not the high
Probability Calculation
Probabilities are derived from historical analysis of 1-minute price data spanning 2010-2025 across all three indices. The system tracks:
Primary Targets: Most likely level to be taken during NY session based on pattern
Secondary Targets: Second most likely level
Asia Targets: Probability of reaching untouched Asia levels (for partial patterns)
Engulfment Probability: Likelihood of NY session taking all four levels
Day-of-Week Specificity
Each pattern has unique probability profiles for Monday through Friday, as market behavior varies significantly by day. The indicator automatically selects the appropriate probability set based on the current trading day.
Conditional Probability Logic
The indicator dynamically adjusts probabilities as levels are taken during the NY session:
When the Primary target is taken first → Shows conditional probability for Secondary target
When Secondary is taken before Primary → Adjusts Primary probability based on historical sequences
Real-time tracking shows which levels have been hit with checkmark confirmations
How Probabilities Were Derived
Data was collected from 15 years of 1-minute futures data for NQ, ES, and YM. For each trading day:
Asia session high/low recorded (8:00 PM - 2:00 AM EST)
London session high/low recorded (2:00 AM - 8:00 AM EST)
Pattern type classified
NY session behavior tracked (8:00 AM - 4:00 PM EST)
Level breaks recorded with sequence order
Statistical frequencies calculated by pattern, day, and instrument
Sample sizes vary but typically include 200-500+ occurrences per pattern/day combination over the 15-year period.
Visual Components
Session Boxes: Color-coded rectangles showing Asia (Yellow), London (Blue), and NY (Red) sessions with their high/low ranges.
Pivot Lines: Horizontal lines marking session highs and lows that extend until broken or until the drawing cutoff time.
Pattern Labels: Automatic labeling at NY open identifying which of the four patterns has formed.
Probability Table: Real-time table showing:
Current pattern type
Instrument type (NQ/ES/YM) and day of week
Sample size (when using dynamic stats)
Primary, Secondary, and Asia target probabilities
Engulfment probability
Live confirmations as levels are taken
Color Coding:
Green background: 70%+ probability
Lime: 50-70% probability
Orange: 30-50% probability
Red: Confirmed (level taken)
Settings & Inputs
Historical Stats
Instrument Type: Select NQ, ES, or YM (each has unique probability data)
Use Dynamic Stats: Toggle between historical probabilities and live collection mode
Sessions:
Customizable session times (default: Asia 8PM-2AM, London 2AM-8AM, NY 8AM-4PM EST)
Session box transparency and colors
Toggle session boxes and text on/off
Pivots:
Show/hide pivot lines and labels
Extend pivots until mitigated or past mitigation
Alert when pivots are broken
Midpoint display option
Probabilities:
Show/hide probability table
Table position and size customization
Pattern label display toggle
Opening Prices:
Optional horizontal lines at key times (midnight,18:00, 09:30, etc.)
How to Use:
Apply to 5-minute chart of NQ, ES, or YM futures
Select your instrument in settings to match the chart
Wait for NY session open - Pattern will be identified and probabilities displayed
Monitor the probability table - Primary targets show highest probability levels
Watch for confirmations - Checkmarks appear as levels are taken
Note conditional updates - Probabilities adjust based on which level breaks first
Trading Applications:
Directional bias: High probability targets suggest likely NY session movement
Level awareness: Know which session highs/lows are most likely to be tested
Risk management: Lower probability scenarios may warrant tighter stops
Sequence planning: Conditional probabilities help anticipate multi-level moves
What Makes This Different:
Unlike standard session indicators that only display ranges, this tool:
Classifies specific overnight pattern formations:
Provides quantified probabilities based on extensive historical analysis
Updates in real-time with conditional logic as the session develops
Distinguishes between different indices (NQ/ES/YM) and days of week
Tracks level-break sequences, not just final outcomes
Notes:
Probabilities are based on historical frequencies and do not guarantee future results
Best used on 1, 5, and 15-minute timeframes for optimal session visualization
Works on continuous futures contracts or /NQ, /ES, /YM symbols
Crypto Schlingel - PVSRA POC EMA Suite v5.903The Chart Indicator Suite combines a wide range of powerful tools that help traders accurately analyze market structures, volatility, and key price zones. With indicators such as POC, pivot points, EMAs, VWAP, Bollinger Bands, and important market levels such as yesterday/weekly high & low, daily open, psy high/low, and ADR, the suite offers a comprehensive overview of trends and market behavior. Supplemented by pvsra candles, long candle detection, and the display of relevant stock market opening hours, it reliably supports traders in making informed trading decisions.
Indicators are configurable
All of the indicators mentioned are fully configurable and can be flexibly adapted to individual trading strategies. Users can freely adjust parameters, display types, and sensitivities to highlight exactly the market information that is relevant to their personal trading style.
The individual fields in the configuration are self-explanatory or are explained in a toolbar, so that the possible settings become clear.
POC
The Point of Control (POC) is a central concept in market profile and volume profile analysis and plays an important role in technical chart analysis. Here is a detailed description of its usefulness and significance:
Definition
The point of control (POC) is the price level at which the most trading volume has taken place within a certain period of time.
It therefore shows the price at which buyers and sellers were most active – the center of market interest.
📊 Use and significance in chart analysis
1. Central support and resistance zone
Since the largest volume was traded at the POC, this price is considered a “fair zone” or equilibrium price.
The market often reacts strongly to the POC:
Above the POC → potential resistance if the price is coming from below.
Below the POC → potential support if the price is falling from above.
Example: If the price returns to the POC, this can be an entry opportunity for traders betting on a market reaction.
2. Interpretation of market acceptance
A price range with high volume (including POC) shows where the market has accepted a fair value.
Low volume, on the other hand, indicates rejection or disinterest.
→ The POC therefore helps to distinguish between accepted price zones and transition areas.
PIVOT POINTS
Pivot points are predefined price levels calculated from the previous day's price data (or a previous time unit).
They help traders identify potential support and resistance zones for the current trading day (or period).
Benefits of pivot points in chart analysis
1. Determining support and resistance areas
The calculated pivot levels (P, S1, S2, R1, R2, etc.) show where the market is likely to react:
Supports (S1, S2, S3) → possible downward turning points.
Resistance (R1, R2, R3) → possible upward turning points.
These zones are often observed by many traders at the same time, making them self-fulfilling marks.
2. Trend determination and market sentiment
If the market opens above the pivot (P) and remains there → signals buying pressure.
If the market trades below the pivot (P) → signals selling pressure.
A break above R1 or below S1 may indicate a strong trend day.
EMA Exponential Moving Average
The EMA is the exponentially weighted moving average of a price.
It shows the average price of a security over a certain period of time, weighted according to recency – that is:
👉 more recent price data has more influence than older data.
This distinguishes it from the simple moving average (SMA), in which all values are weighted equally.
Benefits of the EMA in chart analysis -> Identifying trends
The EMA reacts more quickly to price changes than the SMA and is therefore ideal for:
Identifying trend reversals at an early stage
Confirming trend directions
👉 Rising EMA → Upward trend
👉 Falling EMA → Downward trend
Traders often use combinations such as:
EMA 50 / EMA 200 → Long-term trends
SIGNIFICANCE OF HIGHS AND LOWS
The daily high, daily low, weekly high, and weekly low are objective price zones that show:
Where the market bought (high) or sold (low) the most, and where supply and demand reached their extremes in the past period.
These levels often act as magnetic price zones in ongoing trading, where traders react (entry, profit-taking, or stop setting).
🎯 Use of yesterday's high and low (previous day high/low)
🔹Support and resistance levels
Yesterday's high often acts as resistance when the price comes from below.
Yesterday's low becomes support when the price falls from above.
➡️ Traders watch these levels closely to trade breakouts or reversals.
EMA 9 / EMA 20 → Short-term movements
🎯 Benefits of weekly highs and lows (Weekly High/Low)
Important structural markers in the higher time frame
Weekly highs and lows show medium to long-term market structure.
They are often considered stronger supports/resistances than daily levels.
➡️ For example, if the price breaks above the weekly high, this usually signals institutional interest and may indicate a continuation of the trend.
➡️ Conversely, failure to break above a weekly high may indicate market weakness or a reversal.
DAILY OPEN
The Daily Open is the price at which trading begins on a new day.
It marks the first price after the close of the previous trading session.
👉 In many markets (e.g., Forex, index futures, crypto), this is the starting point of daily price movement, where market direction and sentiment realign.
🎯 Benefits of the Daily Open in chart analysis
Direction indicator (daily bias)
The Daily Open serves as a neutral center line for the current trading day.
Traders use it to assess the market direction (bias):
Price above the Daily Open → bullish day (buyers dominate)
Price below the daily open → bearish day (sellers dominate)
📈 → If the daily open is broken and held above, this indicates upward momentum.
📉 → If it is broken below, this signals weakness.
This simple observation helps traders trade with the daily trend rather than against it.
STOCK MARKET OPENING HOURS
Every major stock exchange has defined trading hours during which institutional capital is active.
Examples (CET):
Asia (Tokyo/ Hong Kong) 1:00 a.m. – 9:00 a.m.
Europe (London/Frankfurt) 08:00 – 17:30
USA (New York) 15:30 – 22:00
Market dynamics change significantly during these time windows, as volume, liquidity, and volatility fluctuate depending on the session.
📈 Benefits in chart analysis
🔹Recognizing volatility and liquidity phases
At the start of a session (e.g., 9:00 a.m. in Frankfurt or 3:30 p.m. in New York), trading volume rises sharply.
This results in strong movements, often with changes in direction or breakouts.
👉 These phases are particularly suitable for:
Breakout strategies
Volume or momentum trades
Example:
If an index (e.g., DAX or S&P 500) reacts strongly at the US opening, this indicates institutional activity that may shape the rest of the day.
PSY HIGH AND PSY LOW
Psy High and Psy Low stand for:
Psychological High → the psychologically significant upper price level of a particular range
Psychological Low → the psychologically significant lower price level
These are often round numbers or striking price zones that market participants unconsciously use as a guide.
Examples:
For EUR/USD: 1.0500, 1.1000, 1.1500
For DAX: 17,000, 17,500, 18,000
For BTC/USD: 60,000, 65,000, 70,000
Traders also refer to such levels as “big figures” or “round numbers.”
📊 Why are psy levels so important?
Because they are based on human perception and market psychology:
👉 People think in round numbers, not in decimals such as 1.1037 or 17.264.
That's why:
Private investors often place their stop losses or take profits just above or below these levels, Institutional traders place large limit orders in these zones, and Algorithms react to the liquidity created there.
→ This results in increased volume, reaction patterns, and price movements at these levels.
ADR (Average Daily Range)
The ADR measures the average daily trading range of a market over a specific period of time – i.e., how many points, pips, or dollars the price typically moves per day.
Example:
If the DAX has moved an average of 180 points per day over the last 14 days, the ADR(14) = 180.
🎯 The benefits of ADR in chart analysis
🔹 Assessment of daily volatility
The ADR shows how much a market typically moves per day.
→ This allows you to see whether the current day is more volatile or calmer than normal.
Interpretation – Meaning
Current range < ADR
→ Market is still moving within normal limits → Potential for further movement
Current range ≈ ADR
→ Daily target largely achieved → lower probability of significant expansion
Current range > ADR
→ Market overextended → increased probability of correction or consolidation
👉 This helps you to plan entries, price targets, and stops realistically.
VWAP (Volume Weighted Average Price)
The VWAP is the volume-weighted average price of a security for a specific period of time – usually per day.
👉 Unlike a simple moving average (e.g., EMA), the VWAP takes into account how much was actually traded – not just where the price was.
It therefore reflects the fair market value, taking into account the trading volume.
🎯 Benefits of VWAP in chart analysis
🔹 Determining the fair average price
The VWAP shows where the majority of the trading volume took place – i.e., the price that the majority of market participants actually paid.
➡️ This is the “fair price of the day.”
Price above VWAP → buyers dominate (bullish)
Price below VWAP → sellers dominate (bearish)
This information is particularly valuable for determining the intraday bias (direction of the day).
BOLLINGER BANDS
Bollinger Bands consist of three lines based on a moving average (usually SMA 20):
Middle band:
→ usually the 20-period SMA (simple moving average)
Upper band:
→ SMA + (2 × standard deviation)
Lower band:
→ SMA − (2 × standard deviation)
👉 This means that the bands “breathe” with volatility – they widen when the market is volatile and contract when the market is calm.
🎯 The benefits of Bollinger Bands in chart analysis
🔹 Measuring market volatility
The main function of Bollinger Bands is to visualize the volatility of a market:
Wide bands → high volatility → strong movement/trend phase
Narrow bands → low volatility → calm market/consolidation
📈 When the bands contract sharply (“Bollinger squeeze”) → often a harbinger of an impending breakout.
KAMA
The KAMA was developed by Perry J. Kaufman.
Unlike normal moving averages such as SMA or EMA, it dynamically adjusts its smoothing to market conditions:
Low volatility / strong trend → reacts faster to price movements
High volatility / sideways movement → reacts slower, reduces false signals
The core idea: adaptability instead of rigid smoothing.
🎯 Benefits of KAMA in chart analysis
🔹 Filtering out market noise
KAMA smooths out unnecessary price fluctuations (noise) that many normal indicators mistakenly interpret as signals.
➡️ This minimizes false signals in sideways phases, while real trends remain visible.
EXTRA LARGE WICKS
A wick (or wick) is the thin line above or below the candle body:
Top → Highest price during the period
Bottom → Lowest price during the period
Long wick → Significant rejection of the price at this extreme zone
Example: A long upper wick means that the price rose high but was then pushed back sharply.
🎯 Benefits of long wicks in chart analysis
🔹 Recognizing rejections and resistance
Long upper wick: Sellers did not allow the higher price → possible downward reversal
Long lower wick: Buyers defended the lower price → possible upward reversal
💡 The market “speaks” through these wicks: It shows where buyers or sellers are not giving in any further.
ICT/SMC DOL Detector PRO (Final)This indicator is designed to operate only on the 1-hour timeframe.
The ICT/SMC DOL Detector PRO is an educational indicator designed to identify and visualize Draw on Liquidity (DOL) levels across multiple time-frames. It tracks unmitigated daily highs and lows, clusters them into zones, and calculates confidence scores based on multiple factors including time decay, cluster size, and time-frame alignment.
This indicator is based on ICT (Inner Circle Trader) concepts and liquidity theory, which suggests that price tends to seek out areas of concentrated unfilled orders before reversing or continuing its trend.
What is a DOL (Draw on Liquidity)?
A Draw on Liquidity represents a daily high or low that has not been revisited (mitigated) by price. These levels act as "magnets" that draw price toward them because:
1. They represent untapped liquidity pools where unfilled orders exist
2. Market makers and institutions often target these levels to fill large orders
3. Price is drawn to these zones to clear pending orders
4. They can serve as potential reversal or continuation zones once liquidity is taken
Methodology
1. Level Tracking
The indicator monitors daily session highs and lows on the 1-hour time-frame, tracking:
- Session high price and time of formation
- Session low price and time of formation
- Whether each level has been breached (mitigated)
- Time elapsed since level formation
2. Clustering Algorithm
Unmitigated levels within a defined tolerance (default 0.5% of price) are grouped together to identify zones where multiple DOLs cluster. Larger clusters indicate stronger liquidity pools.
3. Confidence Scoring (The "AI" Logic)
Each DOL receives a confidence score (0-100%) based on three weighted factors. This is the core "AI" intelligence of the indicator:
**Factor 1: Cluster Size (50% weight)**
- Counts how many unmitigated levels exist within 0.5% of the price zone
- Formula: (levels_in_cluster / total_unmitigated_levels) × 50
- Logic: More unfilled orders clustered together = stronger liquidity pool = higher confidence
- Example: If 5 out of 10 total unmitigated levels cluster at 27,500, cluster score = (5/10) × 50 = 25%
**Factor 2: Time Decay (25% weight)**
- Calculates age of the level since formation
- Fresh levels (< 1 week old): Full 25% score
- Aging penalty: Loses 5% per week of age
- Maximum penalty: 25% (very old levels = 0% time score)
- Formula: max(0, 25 - (weeks_old × 5))
- Logic: Recent liquidity is more relevant than old liquidity that price has ignored for months
**Factor 3: Timeframe Alignment (25% weight)**
- Checks how many timeframes (1H, 4H, D1, W1) point in the same direction
- If multiple timeframes identify DOLs on the same side (all bullish or all bearish): Higher score
- If mixed signals: Lower score
- Formula: (aligned_timeframes / total_timeframes) × 25
- Logic: When multiple timeframes agree, the liquidity zone is validated across different time perspectives
**Total Confidence Score:**
```
Confidence = Cluster_Score + Time_Score + Alignment_Score
= (0-50%) + (0-25%) + (0-25%)
= 0-100%
```
**Example Calculation:**
```
DOL at 27,500:
- 6 out of 12 unmitigated levels cluster here → (6/12) × 50 = 25%
- Level is 2 weeks old → 25 - (2 × 5) = 15%
- 3 out of 4 timeframes bullish toward this level → (3/4) × 25 = 18.75%
- Total Confidence = 25% + 15% + 18.75% = 58.75% ≈ 59%
```
This mathematical approach removes subjectivity and provides objective, data-driven confidence scoring.
4. Multi-Timeframe Analysis
The indicator analyzes DOLs across four timeframes:
- **1H:** Intraday levels (fastest reaction)
- **4H:** Short-term swing levels
- **Daily:** Intermediate-term levels
- **Weekly:** Long-term structural levels
For each timeframe, it identifies:
- Highest confidence unmitigated high
- Highest confidence unmitigated low
- Directional bias (bullish if high > low confidence, bearish if low > high confidence)
5. Primary DOL Selection (AI Auto-Selection Logic)
When "Show AI DOL" is enabled, the indicator uses an automated selection algorithm to identify the most important targets:
**Step 1: Collect All Candidates**
The algorithm gathers all identified DOLs from all timeframes (1H, 4H, D1, W1) that meet minimum criteria:
- Must be unmitigated (not yet swept)
- Must have confidence score > 0%
- Must have at least 1 level in cluster
**Step 2: Calculate Confidence for Each**
Each candidate DOL receives its confidence score using the three-factor formula described above (Cluster + Time + Alignment).
**Step 3: Sort by Confidence**
All candidates are ranked from highest to lowest confidence score.
**Step 4: Select Primary and Secondary**
- **P1 (Primary DOL):** The DOL with the absolute highest confidence score
- **P2 (Secondary DOL):** The DOL with the second highest confidence score
**Why This Matters:**
Instead of manually scanning multiple timeframes and guessing which level is most important, the AI objectively identifies the two highest-probability liquidity targets based on quantifiable data.
**Example AI Selection:**
```
Available DOLs:
- 1H High: 27,400
- 4H High: 27,500
- D1 High: 27,500 ← P1 (Highest)
- W1 High: 27,650 ← P2 (Second Highest)
- 1H Low: 26,800
- D1 Low: 26,500
AI Selection:
P1 = 27,500 (Daily High with 92% confidence)
P2 = 27,650 (Weekly High with 88% confidence)
```
This provides a data-driven target selection rather than subjective manual interpretation. The AI removes emotion and bias, selecting targets based purely on mathematical probability.
Features
Why "AI" DOL?
The term "AI" in this indicator refers to the automated algorithmic selection process, not machine learning or neural networks. Specifically:
**What the AI Does:**
- Automatically evaluates all available DOLs across all timeframes
- Applies a weighted scoring algorithm (Cluster 50%, Time 25%, Alignment 25%)
- Objectively ranks DOLs by probability
- Selects the top 2 highest-confidence targets (P1 and P2)
- Removes human bias and emotion from target selection
**What the AI Does NOT Do:**
- It does not use machine learning or train on historical data
- It does not predict future price movements
- It does not adapt or "learn" over time
- It does not guarantee accuracy
The "AI" is simply an automated decision-making algorithm that applies consistent mathematical rules to identify the most statistically significant liquidity zones. Think of it as a "smart filter" rather than artificial intelligence in the traditional sense.
Visual Components
**Daily Level Lines:**
- Green lines: Unmitigated (not yet breached) levels
- Red lines: Mitigated (already breached) levels
- Dots at origin point showing where level was formed
- X marker when level gets breached
- Lines extend forward to show projection
**DOL Labels:**
- Display timeframe (1H, 4H, D1, W1) or "DOL" for AI selection
- Show confidence percentage in brackets
- Color-coded by timeframe:
- Lime: AI DOL (Smart selection)
- Aqua: 1-hour timeframe
- Blue: 4-hour timeframe
- Purple: Daily timeframe
- Orange: Weekly timeframe
**Info Box (Top Right):**
Displays comprehensive liquidity metrics:
- Total levels tracked
- Active (unmitigated) levels count
- Cleared (mitigated) levels count
- Flow direction (BID PRESSURE / OFFER PRESSURE)
- Most recent sweep
- Primary and Secondary DOL targets
- Multi-timeframe bias analysis
- Overall directional bias
Settings Explained
**Daily Levels Group:**
- Show Daily Highs/Lows: Toggle visibility of all daily level tracking
- Unbreached Color: Color for levels not yet hit
- Breached Color: Color for levels that have been swept
- Show X on Breach: Display marker when level is breached
- Show Dot at Origin: Display marker at level formation point
- Line Width: Thickness of level lines (1-5)
- Line Extension: How many bars forward to project (1-24)
- Max Days to Track: Historical lookback period (5-200 days)
**DOL Settings Group:**
- Cluster Tolerance %: Price range to group DOLs (0.1-2.0%)
- Show Price on Labels: Display actual price value on labels
- Backtest Mode: Only show recent labels for clean historical analysis
- Labels Lookback: Number of bars to show labels when backtesting (10-500)
**Info Box Group:**
- Show Info Box: Toggle info panel visibility
**DOL Toggles Group:**
- Show AI DOL: Display smart auto-selected primary target
- Show 1HR DOL: Display 1-hour timeframe DOLs
- Show 4HR DOL: Display 4-hour timeframe DOLs
- Show Daily DOL: Display daily timeframe DOLs
- Show Weekly DOL: Display weekly timeframe DOLs
**Advanced Group:**
- Manual Mode: Simplified display showing only daily high/low clusters
How to Use This Indicator
Educational Application
This indicator is intended for educational purposes to help traders:
1. **Understand Liquidity Concepts:** Visualize where unfilled orders may exist
2. **Identify Key Levels:** See where price may be drawn to
3. **Analyze Market Structure:** Understand how price interacts with liquidity
4. **Study Multi-Timeframe Alignment:** Observe when multiple timeframes agree
5. **Learn ICT Concepts:** Apply liquidity theory in practice
Interpretation Guidelines
**BID PRESSURE (Flow):**
When lows are being swept more than highs, it suggests:
- Sell-side liquidity being taken
- Potential for upward move to unfilled buy-side liquidity
- Market may be clearing the way for a bullish move
**OFFER PRESSURE (Flow):**
When highs are being swept more than lows, it suggests:
- Buy-side liquidity being taken
- Potential for downward move to unfilled sell-side liquidity
- Market may be clearing the way for a bearish move
**Confidence Scores:**
- 90-100%: Very high probability zone (strong cluster, recent, aligned)
- 80-89%: High probability zone (good cluster, relatively recent)
- 70-79%: Moderate probability zone (decent cluster or older)
- 60-69%: Lower probability zone (small cluster or very old)
- Below 60%: Weak zone (minimal confluence)
**Timeframe Analysis:**
- All timeframes LONG: Strong bullish alignment
- All timeframes SHORT: Strong bearish alignment
- Mixed: Conflicting signals, exercise caution
- Higher timeframes (D1, W1) carry more weight than lower (1H, 4H)
**DIRECTIONAL Indicator:**
- BULLISH: Overall bias suggests upward movement toward buy-side DOLs
- BEARISH: Overall bias suggests downward movement toward sell-side DOLs
- NEUTRAL: No clear directional bias, conflicting signals
Practical Application Examples
**Example 1: Bullish Setup**
```
Flow: BID PRESSURE (lows being swept)
P1: 27,500 (price above current market)
D1: LONG 27,500
W1: LONG 27,650
DIRECTIONAL: BULLISH
```
Interpretation: Price has cleared sell-side liquidity. High confidence buy-side DOL at 27,500. Daily and Weekly timeframes aligned bullish. Watch for move toward 27,500 target.
**Example 2: Bearish Setup**
```
Flow: OFFER PRESSURE (highs being swept)
P1: 26,200 (price below current market)
D1: SHORT 26,200
W1: SHORT 26,100
DIRECTIONAL: BEARISH
```
Interpretation: Price has cleared buy-side liquidity. High confidence sell-side DOL at 26,200. Daily and Weekly timeframes aligned bearish. Watch for move toward 26,200 target.
**Example 3: Mixed Signals - Wait**
```
Flow: BID PRESSURE
P1: 26,800
D1: LONG 27,000
W1: SHORT 26,200
DIRECTIONAL: NEUTRAL
```
Interpretation: Conflicting signals. Flow suggests up, but Weekly bias is down. Confidence scores moderate. Better to wait for clarity.
Important Considerations
This Indicator Does NOT:
- Predict the future
- Guarantee profitable trades
- Provide buy/sell signals
- Replace proper risk management
- Work in isolation without other analysis
This Indicator DOES:
- Visualize liquidity concepts
- Identify potential target zones
- Show timeframe alignment
- Calculate objective confidence scores
- Help understand market structure
Proper Usage:
1. Use as one component of a complete trading strategy
2. Combine with price action analysis
3. Confirm with other technical indicators
4. Consider fundamental factors
5. Always use proper risk management
6. Backtest any strategy before live trading
Risk Disclaimer
**FOR EDUCATIONAL PURPOSES ONLY**
This indicator is for educational purposes only. Trading financial markets involves substantial risk of loss. Past performance does not guarantee future results. Always conduct your own research and consult with a financial advisor before making trading decisions.
**Important Limitations:**
- No indicator is 100% accurate, including the AI selection
- The "AI" is an automated algorithm, not predictive artificial intelligence
- DOL levels can be swept and price can continue in the same direction
- Confidence scores are mathematical calculations, not predictions or probabilities of success
- High confidence does not mean guaranteed profit
- Markets can remain irrational longer than you can remain solvent
- Always use stop losses and proper position sizing
**Understanding the AI Component:**
The AI auto-selection feature uses a fixed mathematical formula to rank DOLs. It does not:
- Predict where price will go
- Learn from past performance
- Adapt to market conditions
- Guarantee any level of accuracy
The confidence score represents the mathematical strength of a liquidity cluster based on objective factors (cluster size, recency, timeframe alignment), NOT a probability of the trade succeeding.
**Risk Warning:**
Trading is risky. Most traders lose money. This indicator cannot change that fundamental reality. Use it as an educational tool to understand market structure, not as a trading signal or system.
Technical Requirements
- **Timeframe:** Best used on 1-hour charts (required for accurate daily level tracking)
- **Markets:** Works on any market (forex, crypto, stocks, futures, indices)
- **Updates:** Real-time calculation on each bar close
- **Resources:** Uses max 500 lines and 500 labels (TradingView limits)
Backtesting Features
The indicator includes "Backtest Mode" to keep historical charts clean:
- When enabled, only shows labels from recent bars
- Adjustable lookback period (10-500 bars)
- All lines remain visible
- Helps review past setups without clutter
To use:
1. Enable "Backtest Mode" in settings
2. Adjust "Labels Lookback" to desired period
3. Review historical price action
4. Disable for live trading
Credits and Methodology
This indicator implements concepts from:
- ICT (Inner Circle Trader) liquidity theory
- Smart Money Concepts (SMC)
- Order flow analysis
- Multi-timeframe analysis principles
The clustering algorithm, confidence scoring, and timeframe synthesis are original implementations designed to quantify and visualize these concepts.
Version History
**v1.0 - Initial Release**
- Multi-timeframe DOL detection
- Confidence scoring system
- Info box with liquidity metrics
- Backtest mode for clean charts
- Black/white professional theme
Support and Updates
For questions, feedback, or suggestions, please use the TradingView comments section. Updates and improvements will be released as needed based on user feedback and market evolution.
**Remember:** This is an educational tool. Successful trading requires knowledge, discipline, risk management, and continuous learning. Use this indicator to enhance your understanding of market structure and liquidity, not as a standalone trading system.
Volume Scope Pro - Order Flow Volume Analysis V1.01Volume Scope Pro — Order Flow Volume Analysis
Overview
Volume Scope Pro is a multi-faceted volume analysis indicator that separates volume into buy (up) and sell (down) components to reveal hidden order flow dynamics. It aggregates lower timeframe volume data to estimate buying vs. selling pressure on each bar, calculates the volume delta (buy volume minus sell volume) per bar, and highlights where price action diverges or converges with volume flow. The indicator provides visual output in the form of an on-chart table and chart markers, helping traders identify potential distribution (selling into strength) and absorption (buying into weakness) events, as well as support/resistance zones derived from volume extremes.
Volume Settings
• Global Volume Period – An integer (default 100) defining the shared lookback window (in bars) for all volume-based calculations. This period is used for identifying volume extrema and computing cumulative volume statistics. A larger period considers more history for averages and sums, while a smaller period focuses on recent bars.
• Use Custom Lower Timeframe – A boolean (default true) that lets you override the automatic choice of lower timeframe for volume breakdown. If enabled, the indicator will use the specific lower timeframe you provide (see next setting) to fetch intrabar volume data. If disabled, the script chooses a lower timeframe based on the chart’s resolution (for example, 1-second for second charts, 1-minute for other intraday charts, 5-minute for daily charts, etc.).
• Lower Timeframe – A timeframe input (default 15S, i.e. 15-second intervals) specifying the lower interval to request for up/down volume calculation. This is the resolution at which the script breaks each chart bar’s volume into buying vs. selling volume. Fifteen seconds is the default as it provides a fine-grained intrabar look on most charts. This setting only takes effect if Use Custom Lower Timeframe is true; otherwise, it is ignored in favor of the automatic timeframe resolution.
Table Display Settings
• A dropdown option that adjusts the text size used in the on-chart data table (Tiny, Small, Normal, Large, Huge; default: Tiny). The default Tiny setting is selected because many traders use the indicator on mobile devices where screen space is limited. If you are using a larger display such as a laptop, desktop, or tablet, you may increase the font size to your preference for improved readability.
• Table Font Color – A color picker for the table text (default is a shade of blue, #0068e6). All text in the table will be rendered in this color. You can change it to improve contrast against your chart background or personal preference.
• Time Offset (hours) – An integer offset in hours (default 3) applied to the current time display in the table. This shifts the real-time clock readout from UTC by the specified number of hours in the table’s header. For example, setting 0 uses UTC, while a value of 3 (default) shows local time for UTC+3. Negative values are allowed for time zones behind UTC. This does not affect any calculations – it only adjusts the displayed clock for user convenience.
Trend Line & Pivot Settings
• Pivot Left and Pivot Right – Integers (default 5 each) controlling the sensitivity of pivot high/low detection. A pivot high is identified when the price high of a bar is greater than the highs of the Pivot Left bars to its left and Pivot Right bars to its right. Similarly, a pivot low is a bar whose low is lower than the lows of the surrounding bars on its left and right as defined by these values. Smaller values make the pivots more local and frequent, while larger values require more significant swings.
• Pivot Count – An integer (default 5) specifying the number of recent pivot points to track. The indicator will remember up to this many pivot highs and pivot lows each, and use them for drawing trend lines. When the count is exceeded, the oldest pivot points are dropped to focus on the most recent ones.
• Lookback Length – An integer (default 100) defining the number of bars over which trend lines are extended and within which pivot points are considered relevant. Essentially, this is the length of the window (in bars) in which the detected pivots and their connecting trend lines will be shown. Trend lines will start at the beginning of this lookback window and end at the latest bar, updating as new bars form.
• High Trend Line Color / Low Trend Line Color – Color inputs for the drawn trend lines connecting pivot highs and pivot lows, respectively (both default to orange #ff7b00). High trend lines typically slope downwards (connecting recent highs), and low trend lines slope upwards (connecting recent lows). You can change these colors to visually distinguish the two or to fit your chart theme.
• Trend Line Thickness – An integer (default 2) setting the stroke width of the pivot trend lines. Higher values make the lines thicker and more prominent.
• Trend Line Style – A string option (default dashed, options: solid, dashed, dotted) determining the line style for both high and low trend lines. For example, choosing “dotted” will draw the trend lines as a series of dots. This purely affects the appearance and has no impact on calculations.
Support/Resistance (S/R) Zone Settings
• SR Lookback Length – An integer (default 100) that defines how many completed bars are scanned for support/resistance zone detection based on volume extrema. The indicator examines this many bars behind the latest bar (the current bar is excluded to avoid repaint issues) to find extreme buying and selling volume points that form the zones. A larger value means a longer historical window for finding significant volume-based zones.
• Projection Bars – An integer (default 26, range 0–200) specifying how far into the future to extend the S/R zone lines. When set above 0, the horizontal lines marking the zones will project to the right of the latest bar by the given number of bars. This helps anticipate where the zones lie ahead of current price. A value of 0 confines the zone markings to past bars only.
• Resistance Zone Color / Support Zone Color – Color inputs for the drawn zones identified as resistance and support (defaults are red for resistance and teal for support). These colors apply to both the zone’s border lines and its background fill (with adjustable transparency, see below).
• Resistance Line Width / Support Line Width – Integers (default 2 each, range 1–5) setting the line thickness for the top and bottom boundaries of the resistance zone and support zone, respectively. For example, if Resistance Line Width is 3, the drawn lines at the top and bottom of the resistance zone will be thicker than the default.
• Resistance Fill Transparency / Support Fill Transparency – Integers in percentage (default 90 each, range 0–100) controlling the opacity of the colored shading that fills the zone area. 0% means fully opaque (solid color fill), and 100% means fully transparent (no fill color). The default of 90% is very transparent, just lightly coloring the zone area for subtlety. Adjust these to highlight the zones more prominently or to make them nearly invisible, depending on preference.
Overbought/Oversold (OB/OS) Voting Settings
• Enable OB/OS Voting – A boolean (default true) that turns on the overbought/oversold “voting” module. When enabled, the indicator evaluates standard technical indicators (RSI, Stochastic, CCI, etc.) to determine if the market is overbought (OB) or oversold (OS). Each indicator contributes an OB or OS “vote” based on its classic threshold (for example, RSI > 70 is an OB vote, RSI < 30 is OS). The module aggregates these votes to identify consensus extreme conditions.
• Enable Volume Confirmation Filter – A boolean (default true) that requires volume confirmation for OB/OS signals. If enabled, an overbought condition will only be confirmed if there is unusually high sell volume at the same time, and an oversold condition will only confirm with unusually high buy volume. In practice, this means even if indicators vote OB/OS, the script will only mark it as confirmed when volume is spiking in the opposite direction of price (signaling distribution for OB or absorption for OS). This filter helps ensure that OB/OS signals align with significant volume imbalance, indicating potential involvement of larger market participants.
• Enable Dynamic ATR Threshold – A boolean (default true) that adjusts the overbought/oversold trigger threshold dynamically based on volatility (ATR). When true, the voting threshold or confirmation conditions may be eased or tightened depending on recent volatility, as measured by the Average True Range. In higher volatility environments, this can prevent premature OB/OS signals by requiring more extreme indicator readings.
• Enable OB/OS Sync Window – A boolean (default true) that allows an OB or OS condition to remain valid for a short window of bars. If enabled, once an OB or OS state is triggered, it can persist for a user-defined number of bars (see Bars for Hit Sync Window) even if not all indicators remain in agreement every single bar. This helps to capture a cluster of OB/OS signals as one event rather than flickering on and off.
• Volume Average Period – An integer (default 3) specifying how many recent bars of volume to average when determining “unusually high” volume for confirmation. The script calculates the average buy volume and sell volume over this many bars; then the Volume Spike Ratio inputs (below) are applied to decide if current volume is significantly above average. For example, with a period of 3, the buy/sell volume of the last 3 bars are averaged to use as a baseline.
• Minimum Vote Count for OB/OS – An integer (default 3) setting the minimum number of indicators that must agree on overbought or oversold to consider it a valid signal. If fewer than this number signal OB (or OS) at the same time, the condition is ignored. A higher threshold makes the OB/OS signal rarer but more robust (requiring broader agreement among indicators).
• Bars for Hit Sync Window – An integer (default 1) controlling the size of the synchronization window (mentioned above) in bars. If an OB/OS condition is identified, it remains “active” for this many subsequent bars, allowing slightly delayed volume confirmation or indicator agreement to still count as part of the same event. For example, with a value of 2, if an OB signal occurs on one bar and the volume spike confirmation happens on the next bar, the module will treat it as a continuous event and still flag it.
• ATR Adjustment Factor – A float (default 14, step 1.0) used when Dynamic ATR Threshold is enabled. This factor influences how much ATR-based volatility adjustment is applied to the OB/OS vote threshold or confirmation criteria. A larger number might increase tolerance in volatile conditions. (Note: 14 here likely corresponds to an ATR period internally, not a direct multiplier of ATR value. It effectively adjusts sensitivity but does not need frequent change.)
• Overbought: Sell Volume Spike Ratio – A float (default 1.5) that sets the multiple of average sell volume required to confirm an Overbought condition. If the current sell volume is at least this factor times the recent average sell volume (over the Volume Average Period), and indicators are signaling OB, then an Overbought state is confirmed. For instance, the default 1.5 means sell volume must be 150% or more of its average to validate an OB signal. This ensures that an overbought label is only shown when there’s evidence of heavy selling (distribution) accompanying the price being overbought.
• Oversold: Buy Volume Spike Ratio – A float (default 2.0) setting the multiple of average buy volume required to confirm an Oversold condition. With the default 2.0, the current buy volume needs to be at least 200% of its recent average for an OS signal to confirm. This indicates strong buying interest (absorption) when price is in an oversold state. Typically, oversold conditions with significant buy volume could precede upward reversals.
• Source – A price source input (default close) for OB/OS calculations. This is the series value passed into the 20 indicator calculations (RSI, Stoch, etc.). By default it uses closing price, but advanced users can change it (for example, to an HLC3 or other composite) if desired. Generally, leaving it as close is standard.
Indicator Calculations and Logic
Volume Data Aggregation and Delta Calculation
At the core of Volume Scope Pro is the separation of total volume into up-volume (buying) and down-volume (selling) on each bar. This is achieved by requesting lower timeframe data using TradingView’s built-in requestUpAndDownVolume() function. Specifically, for each chart bar, the script gathers volume from a lower timeframe interval (e.g., 15-second bars) that fits within the higher timeframe bar. It sums the volume of all lower-TF sub-bars where price moved up (buy volume) vs. down (sell volume), providing an estimate of how much of the volume was transacted at the ask (buys) versus at the bid (sells). The resulting values are stored as upVolume and downVolume for the current bar, and the volume delta is computed as deltaVolume = upVolume – downVolume. By default, the script ensures upVolume and downVolume are treated as absolute magnitudes, while deltaVolume can be positive or negative indicating net buy or sell dominance.
If Use Custom Lower Timeframe is disabled, the indicator automatically chooses an appropriate lower timeframe based on the chart’s resolution. This adaptive logic uses 1-second intervals for charts in seconds, 1-minute for intraday minutes, 5-minute for daily charts, and 60-minute for anything higher, ensuring that up/down volume can be computed across various chart periods. If even finer resolution is needed or the user prefers a specific timeframe (e.g., 15S), enabling the custom option allows that override.
Coverage:
Because not all historical bars will have lower timeframe data available (especially if looking far back or on certain assets/timeframes), the script tracks how many bars actually received a valid up/down volume calculation. Each bar with non-na deltaVolume is counted toward a coverage total . This coverage count is displayed in the table (as “Coverage: X Bars”) to inform the user how many bars in the dataset had full volume breakdown data. It also serves a technical purpose: certain moving averages or calculations are “gated” to only output values when enough data points exist. For example, a 20-bar average of buy volume will not be shown until at least 20 bars with volume data are present; until then it returns NA to avoid misleading results. This gating mechanism is implemented via helper functions that check coverage before computing moving averages or sums. In practice, if you apply the indicator to a fresh chart or after changing the lower timeframe setting, you may see “NA” placeholders for some values until sufficient bars accumulate.
Volume Averages and Recent Change Indicators
For both buy and sell volume, the script computes short-term and medium-term averages to contextualize the current bar’s activity. Specifically, it calculates a 3-bar simple moving average and a 20-bar simple moving average of upVolume and downVolume (these lengths are fixed and chosen to represent a fast vs. slow window). These averages are shown in the table to compare against the current volume:
• The “Buy Current Amount” is the current bar’s buy volume, shown in an engineered format (e.g., 1.25K for 1,250) for readability. Directly below it (in the same cell via a newline) is “Avg : (3 | 20)”, which lists the 3-bar average buy volume and 20-bar average buy volume. Each average value is followed by an arrow marker:
an upward arrow 🔼 means the current buy volume is higher than that average, whereas a downward arrow 🔻 means the current buy volume is lower than that average. These markers give a quick visual cue – for instance, a 🔼 next to the (3) average indicates a volume spike in the very short term (current bar’s buy volume exceeds the recent 3-bar norm). If not enough data exists to compute an average, “NA” is displayed with the window in parentheses (e.g., “NA (20)” if fewer than 20 bars of coverage). The same format is used for Sell volume, where “Sell Current Amount” is the current bar’s sell volume with its own 3-bar and 20-bar averages and markers.
In addition to the short/medium term averages, the script also computes a “global” average buy volume and sell volume over the full Global Volume Period (using a slightly different approach). It first finds the proportion of buy vs sell over that window (summing all upVolume and downVolume over L = Global Volume Period bars) and then multiplies that ratio by the average total volume on the chart timeframe. This yields an implied average buy volume and sell volume for the global window (taking into account that the chart’s own volume may differ from summed LTF volume due to how the LTF data is sampled). These global averages are used internally (for example, in the OB/OS volume filter logic) but are not explicitly printed in the table. Instead, the table provides a more direct insight: the Positive Δ Sum and Negative Δ Sum (explained later) show accumulated buying vs selling pressure over the lookback period.
Price and Volume Trend Convergence/Divergence
Volume Scope Pro analyzes the short-term and medium-term trends of price and volume to identify convergence or divergence between price movement and buy/sell activity. This is done by calculating the angle of linear regression (slope in degrees) for price and for volume over the same two windows (3 bars and 20 bars). In essence, it fits a line through the last 3 closes and measures its angle, and similarly fits lines through the last 3 buy-volume values, last 3 sell-volume values, and repeats for 20 bars. The angles for price vs. volume are then compared:
• For the buy side, the indicator computes the price angle (θ) over 3 bars and 20 bars, and the buy-volume angle over 3 and 20 bars. These are displayed in the table under a “Buy Volume Trend” row. For example, it might show: “Price θ: 12.5° (3) | 5.0° (20)” on one line and “BuyVol θ: 8.0° (3) | 2.0° (20)” on the next. Each angle is given in degrees (θ symbol) with one decimal precision. A positive angle means an uptrend (price or volume increasing), and a negative angle means a downtrend over that window.
• After listing the angles, a convergence/divergence label is shown for each window: either Convergent or Divergent for the 3-bar window and similarly for the 20-bar window. This indicates whether price and buy volume are moving in the same direction (convergent) or opposite directions (divergent). For instance, if price’s 3-bar trend is up (positive slope) but buy-volume’s 3-bar trend is down (negative slope), that would be Divergent (3), signaling a short-term anomaly (price rising on falling buy volume). Conversely, if both price and buy volume are rising together over 20 bars, that shows Convergent (20), indicating buy volume is supporting the uptrend. These convergence/divergence labels help identify potential early warning signs: divergence may precede a reversal or indicate that an observed price move lacks volume support.
The same analysis is done for the sell side. The table’s “Sell Volume Trend” row lists “Price θ: ... | ...” and “SellVol θ: ... | ...” for 3 and 20 bars , followed by labels showing whether price vs. sell volume trends are convergent or divergent over those periods. For example, if price is trending down (negative angle) while sell volume is also trending down, they are Convergent (both indicating selling pressure in line with price drop). If price is falling but sell volume trend is up, that’s Divergent – price decrease accompanied by increasing sell volume could indicate aggressive selling (potential capitulation or acceleration of downtrend). On the other hand, price falling with decreasing sell volume might suggest selling is drying up (potential for a bottom). These nuances can be gleaned from the convergence/divergence outputs.
All angle calculations use a normalized linear regression slope converted to degrees for easy interpretation. The use of a short (3) and longer (20) window provides a quick glance at immediate vs. recent trend alignment. In the table, the angles and convergence labels are organized in two lines for buy and two lines for sell to clearly separate the information.
Volume Delta and Cumulative Delta Sums
The Volume Delta (Δ) for the current bar is a key metric showing the net difference between buy and sell volume. In the table, it appears as a single-line entry like “Delta: 5.2K” (for example) in the volume delta row. The value is formatted with K/M/B suffix if large, and it is colored green if positive (indicating net buying pressure) or red if negative (net selling pressure), with a neutral color if essentially zero. This coloring provides instant visual feedback: a green Delta means buyers dominated that bar, whereas a red Delta means sellers dominated. The delta number itself helps gauge the magnitude of that dominance. For instance, “Delta: 1.5M” in green would signify a very large imbalance of buying volume on that bar. This row gives a per-bar order flow insight complementing the price action of the candle.
To assess the broader context, the indicator also computes cumulative delta sums over the Global Volume Period. It separately accumulates all positive delta values and all negative delta values within the lookback window (e.g., 100 bars). The results are shown in the table as two lines: Positive Δ Sum and Negative Δ Sum, each followed by a number. These represent the total volume imbalance accumulated in each direction over the window. For example, a Positive Δ Sum of 20K means that, summing all bars in the window where buy > sell volume, buyers were ahead by a total of 20,000 volume (volume units) in that period. Similarly, a Negative Δ Sum of 15K would mean sellers were ahead by 15,000 volume in other bars. These sums give a sense of who is in control over the recent horizon: if Positive Δ Sum greatly exceeds Negative Δ Sum, the market has seen net accumulation (buying) in the lookback; if the reverse, net distribution (selling). The values are shown in a neutral text color (since they are not inherently “good” or “bad”) and are formatted with K/M suffixes as needed. They can help confirm trends or identify subtle shifts – for instance, if price is flat but Positive Δ Sum is growing rapidly, it might indicate stealth accumulation even without price movement.
Support/Resistance Zone Detection from Volume Extremes
Volume Scope Pro identifies key support and resistance areas by analyzing how volume behaved in recent price movements. Zones are derived from points where buying or selling activity became unusually strong or unusually weak—areas that often act as reaction levels in future price action.
A high-activity region is highlighted as a Resistance Zone, showing where strong participation previously slowed upward movement.
A low-activity region forms a Support Zone, indicating price levels where the market tended to stabilize or absorb pressure.
These zones are displayed as horizontal regions projected forward on the chart, with customizable colors and styling. Their upper and lower boundaries are shown in the on-chart table, where the indicator also notes whether each zone currently acts as support or resistance based on price position.
🟥 Resistance Zone based on
Buy/Sell Amount: 1.2345 ~ 1.2500
This indicates a resistance zone between roughly 1.2345 and 1.2500 (the bottom and top of that zone). “Buy/Sell Amount” here refers to the fact that this zone was computed from extreme buy/sell volume events, and the values are the zone’s price range. Likewise, a support zone line would be prefixed with 🟩 and show its range. These zones give a unique volume-based perspective on support and resistance, complementing traditional price-based levels.
Pivot-Based Trend Lines
The indicator draws adaptive trendlines by tracking recent swing highs and swing lows. Whenever the market forms meaningful pivots, the tool connects these points to outline the active upward and downward trend structure. A line drawn through recent highs generally acts as a dynamic resistance guide, while a line drawn through lows often behaves as a rising support boundary.
As market structure evolves, the trendlines update automatically, keeping the analysis aligned with the most recent swings. The color, thickness, and style of these lines are fully customizable. At any moment, you may see one line tracking the upper structure and one line tracking the lower structure, helping identify potential breakout areas or trend-channel behavior without manual drawing.
Overbought/Oversold Voting and Volume Signals
Volume Scope Pro includes an Overbought/Oversold engine that evaluates market exhaustion by combining technical momentum signals with real volume behavior. Instead of relying on a single indicator, the system draws from a broad set of classical oscillators, creating a multi-layer confirmation approach.
The tool aggregates signals from a group of well-known indicators and identifies when several of them simultaneously reach extreme levels. When enough of these indicators align, the condition is considered overbought or oversold. To refine these readings, an optional volume filter checks whether buying or selling pressure is unusually strong at the same time.
• Overbought (OB) is highlighted only when technical exhaustion coincides with elevated sell volume.
• Oversold (OS) appears when oversold readings align with strong buy volume.
When confirmed, the indicator places clear visual markers on the chart:
• OB – potential topping conditions supported by heavy selling.
• OS – potential bottoming conditions supported by strong buying.
• Distribution (↑P ↑S) – price rising while selling pressure increases.
• Absorption (↓P ↑B) – price falling while buyers absorb the move.
• Combined signals (OB+DIST or OS+ABS) highlight the strongest forms of exhaustion.
These markings help traders quickly recognize areas where momentum is fading and volume behavior becomes important. While they do not predict exact turning points, they often appear during phases where the market prepares for a shift, consolidation, or slowing trend.
Usage Notes and Interpretation
Volume Scope Pro provides a detailed view into the internal dynamics of market volume, which can greatly aid analysis when used appropriately. Here are some important considerations and best practices:
• Data Availability (Coverage): The accuracy and utility of this indicator depend on the availability of lower timeframe data for the instrument. On very high timeframe charts (weekly/monthly) or illiquid symbols, the automatic lower timeframe (like 1 minute or 5 minutes) might not retrieve full historical intrabar data, resulting in limited coverage. This is indicated in the “Coverage: X Bars” readout. If coverage is low, many of the volume-based values (especially 20-bar averages or global sums) may show “NA” or be unrepresentative until more data accumulates. It’s often best to use this indicator on active symbols and reasonable timeframes (e.g., 1h, 4h, 1D with a few months of data or lower) to ensure plenty of sub-bar data is available. If needed, you can reduce the Global Volume Period to focus on a smaller window that has full coverage, or experiment with a different Lower Timeframe that might have more data available (for example, using 1min instead of 15s on very long histories).
• Interpreting Volume Delta and Trends: A key value to watch is the Delta (Δ) and how it changes. For instance, if price is making new highs but Δ is decreasing or negative, it indicates bearish divergence – fewer buyers are supporting the move, or sellers might be increasingly active (distribution). Conversely, price making new lows while Δ becomes less negative or turns positive is a bullish divergence, implying sellers are exhausting and buyers are stepping in (absorption). The convergence/divergence rows quantitatively highlight these situations. Use them as alerts to investigate further rather than automatic trade signals. For example, a divergent 20-bar trend (price up, buy volume down) doesn’t mean price will immediately reverse, but it does warrant caution as the rally may be on weak footing.
• Support/Resistance Zones: The volume-derived S/R zones offer levels that might not be obvious from price alone. They often pinpoint areas where the tug-of-war between buyers and sellers was most extreme (resistance zone) or where the market had a lull in volume (support zone). Treat these zones as you would conventional support/resistance: price may react when revisiting them. A common use is to watch how price behaves upon approaching a highlighted zone – for instance, if price rallies into a red resistance zone and you see volume delta start to flip negative, it could strengthen the case that the zone is indeed acting as resistance due to renewed selling. The zones update once a new volume extreme enters or exits the lookback window, so they are relatively static during most recent price action, shifting only when a significantly larger volume spike happens or the oldest bar in the window moves out. They are also non-repainting for completed bars (the algorithm excludes the current bar for zone calculation to avoid repaint issues). Keep in mind these zones are horizontal areas; they do not guarantee a reversal, but they mark where supply or demand was notably strong in the past, which is useful context.
• Trend Lines and Pivots: The automatic trend lines drawn from pivot highs and lows can help visualize short-term price channels or triangles. They update in real-time as new pivots form. Use them as guidance for potential breakout or breakdown levels – e.g., if price breaks above a descending high line, that could indicate a bullish breakout from the recent down trend. The pivot detection sensitivity (Pivot Left/Right) can be tuned: higher values will only draw lines across more significant swings, whereas lower values will catch minor swings too. Adjust according to the volatility of the asset (more volatile assets might need larger pivot settings to filter noise). The trend lines are an auxiliary feature in this volume tool, meant to save time drawing those lines manually for recent swings. They work best when recent pivots are clear; in choppy conditions with many equal highs/lows, you might see the lines adjust frequently.
• OB/OS Voting Signals: The overbought/oversold markers (OB, OS, distribution, absorption) are perhaps the most actionable signals from this script, but they should not be used in isolation. They effectively combine momentum and volume analysis. A prudent approach is to confirm these signals with price action or other analysis:
• An “OB” (Overbought) marker suggests a probable short opportunity or at least to be cautious with longs. When you see OB, check if it aligns with other factors: Is price at a known resistance or a volume zone? Is there a bearish candlestick pattern? Multiple OB signals in a cluster (with or without “DIST”) could indicate a topping process – you might wait for price to start rolling over before acting.
• An “OS” (Oversold) marker points to a potential long opportunity or caution with shorts. Look for confluence such as the price being at a support zone, a bullish divergence in delta, or a reversal candle. Sometimes one OS by itself might just lead to a small bounce in an ongoing downtrend, but a series of OS/ABS signals could mark a accumulation phase.
• Distribution (↑P↑S) and Absorption (↓P↑B) markers can appear even without full OB/OS votes. These warn of stealthy behavior: e.g., Distribution triangles showing up during a steady uptrend might precede larger profit-taking drops. Absorption triangles in a downtrend might precede a relief rally. They are early warnings – pay attention if they start to cluster or coincide with known S/R levels.
• The combined labels OB+DIST and OS+ABS are stronger alerts since they mean both the indicators and volume are screaming extreme. These are relatively rarer; when they appear, the likelihood of at least a short-term reversal is higher. Still, disciplined risk management is essential as markets can remain overbought/oversold longer than expected.
• No Guarantees & Context: It’s important to emphasize that none of these outputs guarantee a price will move in a certain direction. They highlight conditions that historically often precede moves. Volume Scope Pro should be used as an informational tool to augment your analysis. For example, you might use it to confirm a breakout (volume delta turning strongly positive on a price break) or to spot divergence (price making a new high but Δ Sum not increasing). Always consider the broader context: trend direction, higher timeframe signals, fundamental news, etc. A bullish signal in a strong downtrend may only yield a minor correction, and a bearish signal in a roaring uptrend might just be a pause.
• Avoiding Over-Optimization: The indicator comes with many inputs. It might be tempting to tweak them frequently, but it’s recommended to start with defaults and adjust only if you understand the effect. For instance, if you increase Minimum Vote Count for OB/OS, you’ll get fewer but more conservative signals – you might miss early warnings. Changing Volume Spike Ratios alters how sensitive the volume filter is – lower ratios give more signals (even on modest volume rises) but risk false alarms. Use these settings to tailor the indicator to the asset or timeframe (e.g., a very high-volume asset might justify a higher spike ratio). The defaults have been chosen to suit a wide range of scenarios reasonably well.
• Performance and Chart Load: Volume Scope Pro does heavy processing by requesting a lower timeframe and calculating many values. On some platforms, loading this indicator might be slightly slower or consume more memory. It’s invite-only and not open-source, which means the calculations happen behind the scenes. If you experience any slowness, you can try using a less granular lower timeframe (e.g., 1min instead of 15s) or reduce the Global Volume Period to lighten the load. Generally it runs efficiently, but be mindful if stacking it with many other complex indicators.
In summary, Volume Scope Pro provides a set of volume-centric insights: from basic buy/sell volume split and delta, to trend alignment, to volume-profile S/R levels, to multi-indicator OB/OS warnings with volume validation. It adheres strictly to providing factual, data-driven information with no predictive guarantees. Traders can utilize this tool to observe where large buyers or sellers might be operating (“smart money”), detect when volume behavior contradicts price (a sign of potential reversals), and identify hidden support and resistance zones. All these pieces of information, when combined with sound strategy and risk management, can improve decision-making. Always remember to use this indicator as one part of a comprehensive analysis.
Reversal Point Dynamics - Machine Learning⇋ Reversal Point Dynamics - Machine Learning
RPD Machine Learning: Self-Adaptive Multi-Armed Bandit Trading System
RPD Machine Learning is an advanced algorithmic trading system that implements genuine machine learning through contextual multi-armed bandits, reinforcement learning, and online adaptation. Unlike traditional indicators that use fixed rules, RPD learns from every trade outcome , automatically discovers which strategies work in current market conditions, and continuously adapts without manual intervention .
Core Innovation: The system deploys six distinct trading policies (ranging from aggressive trend-following to conservative range-bound strategies) and uses LinUCB contextual bandit algorithms with Random Fourier Features to learn which policy performs best in each market regime. After the initial learning phase (50-100 trades), the system achieves autonomous adaptation , automatically shifting between policies as market conditions evolve.
Target Users: Quantitative traders, algorithmic trading developers, systematic traders, and data-driven investors who want a system that adapts over time . Suitable for stocks, futures, forex, and cryptocurrency on any liquid instrument with >100k daily volume.
The Problem This System Solves
Traditional Technical Analysis Limitations
Most trading systems suffer from three fundamental challenges :
Fixed Parameters: Static settings (like "buy when RSI < 30") work well in backtests but may struggle when markets change character. What worked in low-volatility environments may not work in high-volatility regimes.
Strategy Degradation: Manual optimization (curve-fitting) produces systems that perform well on historical data but may underperform in live trading. The system never adapts to new market conditions.
Cognitive Overload: Running multiple strategies simultaneously forces traders to manually decide which one to trust. This leads to hesitation, late entries, and inconsistent execution.
How RPD Machine Learning Addresses These Challenges
Automated Strategy Selection: Instead of requiring you to choose between trend-following and mean-reversion strategies, RPD runs all six policies simultaneously and uses machine learning to automatically select the best one for current conditions. The decision happens algorithmically, removing human hesitation.
Continuous Learning: After every trade, the system updates its understanding of which policies are working. If the market shifts from trending to ranging, RPD automatically detects this through changing performance patterns and adjusts selection accordingly.
Context-Aware Decisions: Unlike simple voting systems that treat all conditions equally, RPD analyzes market context (ADX regime, entropy levels, volatility state, volume patterns, time of day, historical performance) and learns which combinations of context features correlate with policy success.
Machine Learning Architecture: What Makes This "Real" ML
Component 1: Contextual Multi-Armed Bandits (LinUCB)
What Is a Multi-Armed Bandit Problem?
Imagine facing six slot machines, each with unknown payout rates. The exploration-exploitation dilemma asks: Should you keep pulling the machine that's worked well (exploitation) or try others that might be better (exploration)? RPD solves this for trading policies.
Academic Foundation:
RPD implements Linear Upper Confidence Bound (LinUCB) from the research paper "A Contextual-Bandit Approach to Personalized News Article Recommendation" (Li et al., 2010, WWW Conference). This algorithm is used in content recommendation and ad placement systems.
How It Works:
Each policy (AggressiveTrend, ConservativeRange, VolatilityBreakout, etc.) is treated as an "arm." The system maintains:
Reward History: Tracks wins/losses for each policy
Contextual Features: Current market state (8-10 features including ADX, entropy, volatility, volume)
Uncertainty Estimates: Confidence in each policy's performance
UCB Formula: predicted_reward + α × uncertainty
The system selects the policy with highest UCB score , balancing proven performance (predicted_reward) with potential for discovery (uncertainty bonus). Initially, all policies have high uncertainty, so the system explores broadly. After 50-100 trades, uncertainty decreases, and the system focuses on known-performing policies.
Why This Matters:
Traditional systems pick strategies based on historical backtests or user preference. RPD learns from actual outcomes in your specific market, on your timeframe, with your execution characteristics.
Component 2: Random Fourier Features (RFF)
The Non-Linearity Challenge:
Market relationships are often non-linear. High ADX may indicate favorable conditions when volatility is normal, but unfavorable when volatility spikes. Simple linear models struggle to capture these interactions.
Academic Foundation:
RPD implements Random Fourier Features from "Random Features for Large-Scale Kernel Machines" (Rahimi & Recht, 2007, NIPS). This technique approximates kernel methods (like Support Vector Machines) while maintaining computational efficiency for real-time trading.
How It Works:
The system transforms base features (ADX, entropy, volatility, etc.) into a higher-dimensional space using random projections and cosine transformations:
Input: 8 base features
Projection: Through random Gaussian weights
Transformation: cos(W×features + b)
Output: 16 RFF dimensions
This allows the bandit to learn non-linear relationships between market context and policy success. For example: "AggressiveTrend performs well when ADX >25 AND entropy <0.6 AND hour >9" becomes naturally encoded in the RFF space.
Why This Matters:
Without RFF, the system could only learn "this policy has X% historical performance." With RFF, it learns "this policy performs differently in these specific contexts" - enabling more nuanced selection.
Component 3: Reinforcement Learning Stack
Beyond bandits, RPD implements a complete RL framework :
Q-Learning: Value-based RL that learns state-action values. Maps 54 discrete market states (trend×volatility×RSI×volume combinations) to 5 actions (4 policies + no-trade). Updates via Bellman equation after each trade. Converges toward optimal policy after 100-200 trades.
TD(λ) with Eligibility Traces: Extension of Q-Learning that propagates credit backwards through time . When a trade produces an outcome, TD(λ) updates not just the final state-action but all states visited during the trade, weighted by eligibility decay (λ=0.90). This accelerates learning from multi-bar trades.
Policy Gradient (REINFORCE): Learns a stochastic policy directly from 12 continuous market features without discretization. Uses gradient ascent to increase probability of actions that led to positive outcomes. Includes baseline (average reward) for variance reduction.
Meta-Learning: The system learns how to learn by adapting its own learning rates based on feature stability and correlation with outcomes. If a feature (like volume ratio) consistently correlates with success, its learning rate increases. If unstable, rate decreases.
Why This Matters:
Q-Learning provides fast discrete decisions. Policy Gradient handles continuous features. TD(λ) accelerates learning. Meta-learning optimizes the optimization. Together, they create a robust, multi-approach learning system that adapts more quickly than any single algorithm.
Component 4: Policy Momentum Tracking (v2 Feature)
The Recency Challenge:
Standard bandits treat all historical data equally. If a policy performed well historically but struggles in current conditions due to regime shift, the system may be slow to adapt because historical success outweighs recent underperformance.
RPD's Solution:
Each policy maintains a ring buffer of the last 10 outcomes. The system calculates:
Momentum: recent_win_rate - global_win_rate (range: -1 to +1)
Confidence: consistency of recent results (1 - variance)
Policies with positive momentum (recent outperformance) get an exploration bonus. Policies with negative momentum and high confidence (consistent recent underperformance) receive a selection penalty.
Effect: When markets shift, the system detects the shift more quickly through momentum tracking, enabling faster adaptation than standard bandits.
Signal Generation: The Core Algorithm
Multi-Timeframe Fractal Detection
RPD identifies reversal points using three complementary methods :
1. Quantum State Analysis:
Divides price range into discrete states (default: 6 levels)
Peak signals require price in top states (≥ state 5)
Valley signals require price in bottom states (≤ state 1)
Prevents mid-range signals that may struggle in strong trends
2. Fractal Geometry:
Identifies swing highs/lows using configurable fractal strength
Confirms local extremum with neighboring bars
Validates reversal only if price crosses prior extreme
3. Multi-Timeframe Confirmation:
Analyzes higher timeframe (4× default) for alignment
MTF confirmation adds probability bonus
Designed to reduce false signals while preserving valid setups
Probability Scoring System
Each signal receives a dynamic probability score (40-99%) based on:
Base Components:
Trend Strength: EMA(velocity) / ATR × 30 points
Entropy Quality: (1 - entropy) × 10 points
Starting baseline: 40 points
Enhancement Bonuses:
Divergence Detection: +20 points (price/momentum divergence)
RSI Extremes: +8 points (RSI >65 for peaks, <40 for valleys)
Volume Confirmation: +5 points (volume >1.2× average)
Adaptive Momentum: +10 points (strong directional velocity)
MTF Alignment: +12 points (higher timeframe confirms)
Range Factor: (high-low)/ATR × 3 - 1.5 points (volatility adjustment)
Regime Bonus: +8 points (trending ADX >25 with directional agreement)
Penalties:
High Entropy: -5 points (entropy >0.85, chaotic price action)
Consolidation Regime: -10 points (ADX <20, no directional conviction)
Final Score: Clamped to 40-99% range, classified as ELITE (>85%), STRONG (75-85%), GOOD (65-75%), or FAIR (<65%)
Entropy-Based Quality Filter
What Is Entropy?
Entropy measures randomness in price changes . Low entropy indicates orderly, directional moves. High entropy indicates chaotic, unpredictable conditions.
Calculation:
Count up/down price changes over adaptive period
Calculate probability: p = ups / total_changes
Shannon entropy: -p×log(p) - (1-p)×log(1-p)
Normalized to 0-1 range
Application:
Entropy <0.5: Highly ordered (ELITE signals possible)
Entropy 0.5-0.75: Mixed (GOOD signals)
Entropy >0.85: Chaotic (signals blocked or heavily penalized)
Why This Matters:
Prevents trading during choppy, news-driven conditions where technical patterns may be less reliable. Automatically raises quality bar when market is unpredictable.
Regime Detection & Market Microstructure - ADX-Based Regime Classification
RPD uses Wilder's Average Directional Index to classify markets:
Bull Trend: ADX >25, +DI > -DI (directional conviction bullish)
Bear Trend: ADX >25, +DI < -DI (directional conviction bearish)
Consolidation: ADX <20 (no directional conviction)
Transitional: ADX 20-25 (forming direction, ambiguous)
Filter Logic:
Blocks all signals during Transitional regime (avoids trading during uncertain conditions)
Blocks Consolidation signals unless ADX ≥ Min Trend Strength
Adds probability bonus during strong trends (ADX >30)
Effect: Designed to reduce signal frequency while focusing on higher-quality setups.
Divergence Detection
Bearish Divergence:
Price makes higher high
Velocity (price momentum) makes lower high
Indicates weakening upward pressure → SHORT signal quality boost
Bullish Divergence:
Price makes lower low
Velocity makes higher low
Indicates weakening downward pressure → LONG signal quality boost
Bonus: Adds probability points and additional acceleration factor. Divergence signals have historically shown higher success rates in testing.
Hierarchical Policy System - The Six Trading Policies
1. AggressiveTrend (Policy 0):
Probability Threshold: 60% (trades more frequently)
Entropy Threshold: 0.70 (tolerates moderate chaos)
Stop Multiplier: 2.5× ATR (wider stops for trends)
Target Multiplier: 5.0R (larger targets)
Entry Mode: Pyramid (scales into winners)
Best For: Strong trending markets, breakouts, momentum continuation
2. ConservativeRange (Policy 1):
Probability Threshold: 75% (more selective)
Entropy Threshold: 0.60 (requires order)
Stop Multiplier: 1.8× ATR (tighter stops)
Target Multiplier: 3.0R (modest targets)
Entry Mode: Single (one-shot entries)
Best For: Range-bound markets, low volatility, mean reversion
3. VolatilityBreakout (Policy 2):
Probability Threshold: 65% (moderate)
Entropy Threshold: 0.80 (accepts high entropy)
Stop Multiplier: 3.0× ATR (wider stops)
Target Multiplier: 6.0R (larger targets)
Entry Mode: Tiered (splits entry)
Best For: Compression breakouts, post-consolidation moves, gap opens
4. EntropyScalp (Policy 3):
Probability Threshold: 80% (very selective)
Entropy Threshold: 0.40 (requires extreme order)
Stop Multiplier: 1.5× ATR (tightest stops)
Target Multiplier: 2.5R (quick targets)
Entry Mode: Single
Best For: Low-volatility grinding moves, tight ranges, highly predictable patterns
5. DivergenceHunter (Policy 4):
Probability Threshold: 70% (quality-focused)
Entropy Threshold: 0.65 (balanced)
Stop Multiplier: 2.2× ATR (moderate stops)
Target Multiplier: 4.5R (balanced targets)
Entry Mode: Tiered
Best For: Divergence-confirmed reversals, exhaustion moves, trend climax
6. AdaptiveBlend (Policy 5):
Probability Threshold: 68% (balanced)
Entropy Threshold: 0.75 (balanced)
Stop Multiplier: 2.0× ATR (standard)
Target Multiplier: 4.0R (standard)
Entry Mode: Single
Best For: Mixed conditions, general trading, fallback when no clear regime
Policy Clustering (Advanced/Extreme Modes)
Policies are grouped into three clusters based on regime affinity:
Cluster 1 (Trending): AggressiveTrend, DivergenceHunter
High regime affinity (0.8): Performs well when ADX >25
Moderate vol affinity (0.6): Works in various volatility
Cluster 2 (Ranging): ConservativeRange, AdaptiveBlend
Low regime affinity (0.3): Better suited for ADX <20
Low vol affinity (0.4): Optimized for calm markets
Cluster 3 (Breakout): VolatilityBreakout
Moderate regime affinity (0.6): Works in multiple regimes
High vol affinity (0.9): Requires high volatility for optimal characteristics
Hierarchical Selection Process:
Calculate cluster scores based on current regime and volatility
Select best-matching cluster
Run UCB selection within chosen cluster
Apply momentum boost/penalty
This two-stage process reduces learning time - instead of choosing among 6 policies from scratch, system first narrows to 1-2 policies per cluster, then optimizes within cluster.
Risk Management & Position Sizing
Dynamic Kelly Criterion Sizing (Optional)
Traditional Fixed Sizing Challenge:
Using the same position size for all signal probabilities may be suboptimal. Higher-probability signals could justify larger positions, lower-probability signals smaller positions.
Kelly Formula:
f = (p × b - q) / b
Where:
p = win probability (from signal score)
q = loss probability (1 - p)
b = win/loss ratio (average_win / average_loss)
f = fraction of capital to risk
RPD Implementation:
Uses Fractional Kelly (1/4 Kelly default) for safety. Full Kelly is theoretically optimal but can recommend large position sizes. Fractional Kelly reduces volatility while maintaining adaptive sizing benefits.
Enhancements:
Probability Bonus: Normalize(prob, 65, 95) × 0.5 multiplier
Divergence Bonus: Additional sizing on divergence signals
Regime Bonus: Additional sizing during strong trends (ADX >30)
Momentum Adjustment: Hot policies receive sizing boost, cold policies receive reduction
Safety Rails:
Minimum: 1 contract (floor)
Maximum: User-defined cap (default 10 contracts)
Portfolio Heat: Max total risk across all positions (default 4% equity)
Multi-Mode Stop Loss System
ATR Mode (Default):
Stop = entry ± (ATR × base_mult × policy_mult)
Consistent risk sizing
Ignores market structure
Best for: Futures, forex, algorithmic trading
Structural Mode:
Finds swing low (long) or high (short) over last 20 bars
Identifies fractal pivots within lookback
Places stop below/above structure + buffer (0.1× ATR)
Best for: Stocks, instruments that respect structure
Hybrid Mode (Intelligent):
Attempts structural stop first
Falls back to ATR if:
Structural level is invalid (beyond entry)
Structural stop >2× ATR away (too wide)
Best for: Mixed instruments, adaptability
Dynamic Adjustments:
Breakeven: Move stop to entry + 1 tick after 1.0R profit
Trailing: Trail stop 0.8R behind price after 1.5R profit
Timeout: Force close after 30 bars (optional)
Tiered Entry System
Challenge: Equal sizing on all signals may not optimize capital allocation relative to signal quality.
Solution:
Tier 1 (40% of size): Enters immediately on all signals
Tier 2 (60% of size): Enters only if probability ≥ Tier 2 trigger (default 75%)
Example:
Calculated optimal size: 10 contracts
Signal probability: 72%
Tier 2 trigger: 75%
Result: Enter 4 contracts only (Tier 1)
Same signal at 80% probability
Result: Enter 10 contracts (4 Tier 1 + 6 Tier 2)
Effect: Automatically scales size to signal quality, optimizing capital allocation.
Performance Optimization & Learning Curve
Warmup Phase (First 50 Trades)
Purpose: Ensure all policies get tested before system focuses on preferred strategies.
Modifications During Warmup:
Probability thresholds reduced 20% (65% becomes 52%)
Entropy thresholds increased 20% (more permissive)
Exploration rate stays high (30%)
Confidence width (α) doubled (more exploration)
Why This Matters:
Without warmup, system might commit to early-performing policy without testing alternatives. Warmup forces thorough exploration before focusing on best-performing strategies.
Curriculum Learning
Phase 1 (Trades 1-50): Exploration
Warmup active
All policies tested
High exploration (30%)
Learning fundamental patterns
Phase 2 (Trades 50-100): Refinement
Warmup ended, thresholds normalize
Exploration decaying (30% → 15%)
Policy preferences emerging
Meta-learning optimizing
Phase 3 (Trades 100-200): Specialization
Exploration low (15% → 8%)
Clear policy preferences established
Momentum tracking fully active
System focusing on learned patterns
Phase 4 (Trades 200+): Maturity
Exploration minimal (8% → 5%)
Regime-policy relationships learned
Auto-adaptation to market shifts
Stable performance expected
Convergence Indicators
System is learning well when:
Policy switch rate decreasing over time (initially ~50%, should drop to <20%)
Exploration rate decaying smoothly (30% → 5%)
One or two policies emerge with >50% selection frequency
Performance metrics stabilizing over time
Consistent behavior in similar market conditions
System may need adjustment when:
Policy switch rate >40% after 100 trades (excessive exploration)
Exploration rate not decaying (parameter issue)
All policies showing similar selection (not differentiating)
Performance declining despite relaxed thresholds (underlying signal issue)
Highly erratic behavior after learning phase
Advanced Features
Attention Mechanism (Extreme Mode)
Challenge: Not all features are equally important. Trading hour might matter more than price-volume correlation, but standard approaches treat them equally.
Solution:
Each RFF dimension has an importance weight . After each trade:
Calculate correlation: sign(feature - 0.5) × sign(reward)
Update importance: importance += correlation × 0.01
Clamp to range
Effect: Important features get amplified in RFF transformation, less important features get suppressed. System learns which features correlate with successful outcomes.
Temporal Context (Extreme Mode)
Challenge: Current market state alone may be incomplete. Historical context (was volatility rising or falling?) provides additional information.
Solution:
Includes 3-period historical context with exponential decay (0.85):
Current features (weight 1.0)
1 bar ago (weight 0.85)
2 bars ago (weight 0.72)
Effect: Captures momentum and acceleration of market features. System learns patterns like "rising volatility with falling entropy" that may precede significant moves.
Transfer Learning via Episodic Memory
Short-Term Memory (STM):
Last 20 trades
Fast adaptation to immediate regime
High learning rate
Long-Term Memory (LTM):
Condensed historical patterns
Preserved knowledge from past regimes
Low learning rate
Transfer Mechanism:
When STM fills (20 trades), patterns consolidated into LTM . When similar regime recurs later, LTM provides faster adaptation than starting from scratch.
Practical Implementation Guide - Recommended Settings by Instrument
Futures (ES, NQ, CL):
Adaptive Period: 20-25
ML Mode: Advanced
RFF Dimensions: 16
Policies: 6
Base Risk: 1.5%
Stop Mode: ATR or Hybrid
Timeframe: 5-15 min
Forex Majors (EURUSD, GBPUSD):
Adaptive Period: 25-30
ML Mode: Advanced
RFF Dimensions: 16
Policies: 6
Base Risk: 1.0-1.5%
Stop Mode: ATR
Timeframe: 5-30 min
Cryptocurrency (BTC, ETH):
Adaptive Period: 20-25
ML Mode: Extreme (handles non-stationarity)
RFF Dimensions: 32 (captures complexity)
Policies: 6
Base Risk: 1.0% (volatility consideration)
Stop Mode: Hybrid
Timeframe: 15 min - 4 hr
Stocks (Large Cap):
Adaptive Period: 25-30
ML Mode: Advanced
RFF Dimensions: 16
Policies: 5-6
Base Risk: 1.5-2.0%
Stop Mode: Structural or Hybrid
Timeframe: 15 min - Daily
Scaling Strategy
Phase 1 (Testing - First 50 Trades):
Max Contracts: 1-2
Goal: Validate system on your instrument
Monitor: Performance stabilization, learning progress
Phase 2 (Validation - Trades 50-100):
Max Contracts: 2-3
Goal: Confirm learning convergence
Monitor: Policy stability, exploration decay
Phase 3 (Scaling - Trades 100-200):
Max Contracts: 3-5
Enable: Kelly sizing (1/4 Kelly)
Goal: Optimize capital efficiency
Monitor: Risk-adjusted returns
Phase 4 (Full Deployment - Trades 200+):
Max Contracts: 5-10
Enable: Full momentum tracking
Goal: Sustained consistent performance
Monitor: Ongoing adaptation quality
Limitations & Disclaimers
Statistical Limitations
Learning Sample Size: System requires minimum 50-100 trades for basic convergence, 200+ trades for robust learning. Early performance (first 50 trades) may not reflect mature system behavior.
Non-Stationarity Risk: Markets change over time. A system trained on one market regime may need time to adapt when conditions shift (typically 30-50 trades for adjustment).
Overfitting Possibility: With 16-32 RFF dimensions and 6 policies, system has substantial parameter space. Small sample sizes (<200 trades) increase overfitting risk. Mitigated by regularization (λ) and fractional Kelly sizing.
Technical Limitations
Computational Complexity: Extreme mode with 32 RFF dimensions, 6 policies, and full RL stack requires significant computation. May perform slowly on lower-end systems or with many other indicators loaded.
Pine Script Constraints:
No true matrix inversion (uses diagonal approximation for LinUCB)
No cryptographic RNG (uses market data as entropy)
No proper random number generation for RFF (uses deterministic pseudo-random)
These approximations reduce mathematical precision compared to academic implementations but remain functional for trading applications.
Data Requirements: Needs clean OHLCV data. Missing bars, gaps, or low liquidity (<100k daily volume) can degrade signal quality.
Forward-Looking Bias Disclaimer
Reward Calculation Uses Future Data: The RL system evaluates trades using an 8-bar forward-looking window. This means when a position enters at bar 100, the reward calculation considers price movement through bar 108.
Why This is Disclosed:
Entry signals do NOT look ahead - decisions use only data up to entry bar
Forward data used for learning only, not signal generation
In live trading, system learns identically as bars unfold in real-time
Simulates natural learning process (outcomes are only known after trades complete)
Implication: Backtested metrics reflect this 8-bar evaluation window. Live performance may vary if:
- Positions held longer than 8 bars
- Slippage/commissions differ from backtest settings
- Market microstructure changes (wider spreads, different execution quality)
Risk Warnings
No Guarantee of Profit: All trading involves substantial risk of loss. Machine learning systems can fail if market structure fundamentally changes or during unprecedented events.
Maximum Drawdown: With 1.5% base risk and 4% max total risk, expect potential drawdowns. Historical drawdowns do not predict future drawdowns. Extreme market conditions can exceed expectations.
Black Swan Events: System has not been tested under: flash crashes, trading halts, circuit breakers, major geopolitical shocks, or other extreme events. Such events can exceed stop losses and cause significant losses.
Leverage Risk: Futures and forex involve leverage. Adverse moves combined with leverage can result in losses exceeding initial investment. Use appropriate position sizing for your risk tolerance.
System Failures: Code bugs, broker API failures, internet outages, or exchange issues can prevent proper execution. Always monitor automated systems and maintain appropriate safeguards.
Appropriate Use
This System Is:
✅ A machine learning framework for adaptive strategy selection
✅ A signal generation system with probabilistic scoring
✅ A risk management system with dynamic sizing
✅ A learning system designed to adapt over time
This System Is NOT:
❌ A price prediction system (does not forecast exact prices)
❌ A guarantee of profits (can and will experience losses)
❌ A replacement for due diligence (requires monitoring and understanding)
❌ Suitable for complete beginners (requires understanding of ML concepts, risk management, and trading fundamentals)
Recommended Use:
Paper trade for 100 signals before risking capital
Start with minimal position sizing (1-2 contracts) regardless of calculated size
Monitor learning progress via dashboard
Scale gradually over several months only after consistent results
Combine with fundamental analysis and broader market context
Set account-level risk limits (e.g., maximum drawdown threshold)
Never risk more than you can afford to lose
What Makes This System Different
RPD implements academically-derived machine learning algorithms rather than simple mathematical calculations or optimization:
✅ LinUCB Contextual Bandits - Algorithm from WWW 2010 conference (Li et al.)
✅ Random Fourier Features - Kernel approximation from NIPS 2007 (Rahimi & Recht)
✅ Q-Learning, TD(λ), REINFORCE - Standard RL algorithms from Sutton & Barto textbook
✅ Meta-Learning - Learning rate adaptation based on feature correlation
✅ Online Learning - Real-time updates from streaming data
✅ Hierarchical Policies - Two-stage selection with clustering
✅ Momentum Tracking - Recent performance analysis for faster adaptation
✅ Attention Mechanism - Feature importance weighting
✅ Transfer Learning - Episodic memory consolidation
Key Differentiators:
Actually learns from trade outcomes (not just parameter optimization)
Updates model parameters in real-time (true online learning)
Adapts to changing market regimes (not static rules)
Improves over time through reinforcement learning
Implements published ML algorithms with proper citations
Conclusion
RPD Machine Learning represents a different approach from traditional technical analysis to adaptive, self-learning systems . Instead of manually optimizing parameters (which can overfit to historical data), RPD learns behavior patterns from actual trading outcomes in your specific market.
The combination of contextual bandits, reinforcement learning, random fourier features, hierarchical policy selection, and momentum tracking creates a multi-algorithm learning system designed to handle non-stationary markets better than static approaches.
After the initial learning phase (50-100 trades), the system achieves autonomous adaptation - automatically discovering which strategies work in current conditions and shifting allocation without human intervention. This represents an approach where systems adapt over time rather than remaining static.
Use responsibly. Paper trade extensively. Scale gradually. Understand that past performance does not guarantee future results and all trading involves risk of loss.
Taking you to school. — Dskyz, Trade with insight. Trade with anticipation.
ZynAlgo S&R ProZynAlgo S&R Pro identifies confirmed swing highs and swing lows, marks them on the chart, and draws single horizontal liquidity lines that extend from each confirmed swing until the next swing of the same type occurs. The tool can optionally recolor candles based on whether the current close is above or below the previous close. It also exposes alert conditions for new swing points and for when price reaches the most recent buy-side or sell-side liquidity line.
Important: This is a visual analysis tool. It does not open, manage, or close positions. It is provided for educational and informational purposes only.
How it works (under the hood)
Swing detection (confirmed):
The script uses ta.pivothigh/ta.pivotlow with symmetric left/right bars defined by Left bar & Right bar. A swing is considered only after the bar is confirmed.
Swing markers:
When enabled, confirmed swing highs/lows are marked with small circles above/below bars. The offset equals the left/right length to align with the confirmed pivot location.
Liquidity lines:
On each swing high, the script ends (anchors) the previous buy-side line at the pivot’s bar, then creates a new dotted/dashed/solid horizontal line at that swing price and extends it forward.
On each swing low, it does the same for sell-side lines.
Between swing events, the most recent buy-side and sell-side lines continue extending to the current bar.
Alerts:
Swing High / Swing Low Created — fires on confirmation of a new swing.
Buy Side Liquidity Raid — when price crosses over the most recent swing-high line.
Sell Side Liquidity Raid — when price crosses under the most recent swing-low line.
Optional candle coloring:
If enabled, candles can be recolored by comparing current close to the previous close, with independent toggles for body, borders, and wicks.
Inputs & recommended tooltips (copy-friendly)
Swing High/Low Setting
Left bar & Right bar (len_l)
Tooltip: “Bars to the left/right required to confirm a pivot. Larger values = fewer but stronger swing points (default: 20).”
Show Swing High Swing Low (flg_shsl)
Tooltip: “Plot small circles at confirmed swing highs (red) and swing lows (blue).”
(Note: i_labelcolor_price is present but unused in visible drawings—safe to ignore or reserve for future use.)
Liquidity Pools Settings
Show Liquidity Pools (flg_lq)
Tooltip: “Draw a horizontal line at each confirmed swing. The line extends forward until the next swing of the same type appears.”
Line Width (i_width)
Tooltip: “Thickness of liquidity lines (1–6).”
Line Style (i_linestyle)
Tooltip: “Choose solid, dashed, or dotted style for liquidity lines.”
Buy Side Liquidity Color (i_linecolor_bs)
Tooltip: “Color for swing-high liquidity lines (default: red).”
Sell Side Liquidity Color (i_linecolor_ss)
Tooltip: “Color for swing-low liquidity lines (default: blue).”
Candles
Color bars based on previous close (use_prev_close)
Tooltip: “If enabled, candle colors are based on whether close > previous close (Up) or not (Down).”
Up Color / Down Color
Tooltip: “Colors used for up vs. down determination.”
Body / Borders / Wick (apply toggles)
Tooltip: “Choose which candle parts to recolor.”
Alerts available (names as shown in the Create Alert dialog)
Swing High
Triggers when a new swing high is confirmed. Select this condition to be notified about newly formed swing highs.
Swing Low
Triggers when a new swing low is confirmed.
Buy Side Liquidity Raid
Triggers when price crosses above the most recent swing-high liquidity line (crossover(high, LSH)).
Sell Side Liquidity Raid
Triggers when price crosses below the most recent swing-low liquidity line (crossunder(low, LSL)).
Quick start (suggested workflow)
Add to chart: Apply ZynAlgo S&R Pro to your symbol and timeframe.
Choose sensitivity: Adjust Left bar & Right bar. Higher values focus on more significant swing points; lower values react faster.
Toggle visuals:
Enable Show Swing High Swing Low to see swing markers.
Enable Show Liquidity Pools to draw/extend liquidity lines. Pick the line style, width, and colors you prefer.
(Optional) Candle colors: Turn on Color bars based on previous close and choose which parts to color.
Set alerts:
Open Create Alert → Condition: ZynAlgo S&R Pro → choose Swing High, Swing Low, Buy Side Liquidity Raid, or Sell Side Liquidity Raid as needed.
Practical notes & limitations
Confirmed swings only: Pivots are plotted after confirmation (i.e., once the required left/right bars are complete). This avoids repainting the pivot location.
One active line per side: Only the most recent buy-side and sell-side liquidity lines extend to the right; prior lines are ended when a new swing of the same side appears.
Timeframes & instruments: Parameter sensitivity can vary across markets/timeframes. Consider tuning Left bar & Right bar to match volatility.
No orders are placed: This indicator does not execute trades or manage positions.
Compliance & fair-use guidance
No performance promises: This tool does not guarantee profitable results and should not be described as “signals,” “guaranteed,” “best,” or similar claims. It is an analysis aid that visualizes historical swing points, liquidity levels, and optional candle coloring.
Educational intent: Use it to support your chart review and alerting workflow; combine with your own judgment and risk controls.
Alerts are informational: Alerts reflect the conditions described above and do not constitute financial advice.
Change log (summary of core features)
Swing detection with configurable left/right bars; optional swing markers.
Auto-extending buy-side/sell-side liquidity lines with customizable style/width/colors.
Four alert conditions (new swing highs/lows and liquidity raids).
Optional candle recoloring with separate toggles for body/borders/wicks.
Dynamic Line Management
Unlike static support/resistance tools, ZynAlgo S&R Pro automatically manages the lifecycle of each liquidity line — removing outdated levels the moment new structure forms.
This ensures the chart always reflects the most relevant active zones.
Structure + Liquidity Integration
By combining price structure (swing points) with liquidity visualization, it bridges the gap between classic S&R and modern liquidity-based interpretation — a fusion rarely found in lightweight indicators.
Noise-Free Design
The script plots only the most essential elements: confirmed swings, active liquidity lines, and optional candle color context.
It avoids overlapping labels, text clutter, or unnecessary metrics — ideal for traders who prefer clarity and precision.
Non-Repainting Logic
All pivots are confirmed only after the required right-side bars are closed, ensuring all swing points and lines remain fixed once plotted.
This gives confidence in backtesting and visual analysis without misleading signals.
Lightweight & Efficient
Despite tracking multiple dynamic lines, the algorithm is optimized for performance (using arrays and efficient bar updates), making it suitable for both high- and low-timeframe analysis.
Adaptable Across Market Types
Equally applicable to forex, crypto, indices, and commodities, the algorithm’s sensitivity parameter lets users adjust to volatility differences between instruments.
Purely Analytical
The tool does not provide trade signals or predictions.
Its design supports price-action interpretation, liquidity mapping, and structure confirmation — helping traders read context rather than react to noise.
🔶 RISK DISCLAIMER
Trading is risky & most day traders lose money. All content, tools, scripts, articles, & education provided by ZynAlgo are purely for informational & educational purposes only. Past performance does not guarantee future results.
Manifold Singularity EngineManifold Singularity Engine: Catastrophe Theory Detection Through Multi-Dimensional Topology Analysis
The Manifold Singularity Engine applies catastrophe theory from mathematical topology to multi-dimensional price space analysis, identifying potential reversal conditions by measuring manifold curvature, topological complexity, and fractal regime states. Unlike traditional reversal indicators that rely on price pattern recognition or momentum oscillators, this system reconstructs the underlying geometric surface (manifold) that price evolves upon and detects points where this topology undergoes catastrophic folding—mathematical singularities that correspond to forced directional changes in price dynamics.
The indicator combines three analytical frameworks: phase space reconstruction that embeds price data into a multi-dimensional coordinate system, catastrophe detection that measures when this embedded manifold reaches critical curvature thresholds indicating topology breaks, and Hurst exponent calculation that classifies the current fractal regime to adaptively weight detection sensitivity. This creates a geometry-based reversal detection system with visual feedback showing topology state, manifold distortion fields, and directional probability projections.
What Makes This Approach Different
Phase Space Embedding Construction
The core analytical method reconstructs price evolution as movement through a three-dimensional coordinate system rather than analyzing price as a one-dimensional time series. The system calculates normalized embedding coordinates: X = normalize(price_velocity, window) , Y = normalize(momentum_acceleration, window) , and Z = normalize(volume_weighted_returns, window) . These coordinates create a trajectory through phase space where price movement traces a path across a geometric surface—the market manifold.
This embedding approach differs fundamentally from traditional technical analysis by treating price not as a sequential data stream but as a dynamical system evolving on a curved surface in multi-dimensional space. The trajectory's geometric properties (curvature, complexity, folding) contain information about impending directional changes that single-dimension analysis cannot capture. When this manifold undergoes rapid topological deformation, price must respond with directional change—this is the mathematical basis for catastrophe detection.
Statistical normalization using z-score transformation (subtracting mean, dividing by standard deviation over a rolling window) ensures the coordinate system remains scale-invariant across different instruments and volatility regimes, allowing identical detection logic to function on forex, crypto, stocks, or indices without recalibration.
Catastrophe Score Calculation
The catastrophe detection formula implements a composite anomaly measurement combining multiple topology metrics: Catastrophe_Score = 0.45×Curvature_Percentile + 0.25×Complexity_Ratio + 0.20×Condition_Percentile + 0.10×Gradient_Percentile . Each component measures a distinct aspect of manifold distortion:
Curvature (κ) is computed using the discrete Laplacian operator: κ = √ , which measures how sharply the manifold surface bends at the current point. High curvature values indicate the surface is folding or developing a sharp corner—geometric precursors to catastrophic topology breaks. The Laplacian measures second derivatives (rate of change of rate of change), capturing acceleration in the trajectory's path through phase space.
Topological Complexity counts sign changes in the curvature field over the embedding window, measuring how chaotically the manifold twists and oscillates. A smooth, stable surface produces low complexity; a highly contorted, unstable surface produces high complexity. This metric detects when the geometric structure becomes informationally dense with multiple local extrema, suggesting an imminent topology simplification event (catastrophe).
Condition Number measures the Jacobian matrix's sensitivity: Condition = |Trace| / |Determinant|, where the Jacobian describes how small changes in price produce changes in the embedding coordinates. High condition numbers indicate numerical instability—points where the coordinate transformation becomes ill-conditioned, suggesting the manifold mapping is approaching a singularity.
Each metric is converted to percentile rank within a rolling window, then combined using weighted sum. The percentile transformation creates adaptive thresholds that automatically adjust to each instrument's characteristic topology without manual recalibration. The resulting 0-100% catastrophe score represents the current bar's position in the distribution of historical manifold distortion—values above the threshold (default 65%) indicate statistically extreme topology states where reversals become geometrically probable.
This multi-metric ensemble approach prevents false signals from isolated anomalies: all four geometric features must simultaneously indicate distortion for a high catastrophe score, ensuring only true manifold breaks trigger detection.
Hurst Exponent Regime Classification
The Hurst exponent calculation implements rescaled range (R/S) analysis to measure the fractal dimension of price returns: H = log(R/S) / log(n) , where R is the range of cumulative deviations from mean and S is the standard deviation. The resulting value classifies market behavior into three fractal regimes:
Trending Regime (H > 0.55) : Persistent price movement where future changes are positively correlated with past changes. The manifold exhibits directional momentum with smooth topology evolution. In this regime, catastrophe signals receive 1.2× confidence multiplier because manifold breaks in trending conditions produce high-magnitude directional changes.
Mean-Reverting Regime (H < 0.45) : Anti-persistent price movement where future changes tend to oppose past changes. The manifold exhibits oscillatory topology with frequent small-scale distortions. Catastrophe signals receive 0.8× confidence multiplier because reversal significance is diminished in choppy conditions where the manifold constantly folds at minor scales.
Random Walk Regime (H ≈ 0.50) : No statistical correlation in returns. The manifold evolution is geometrically neutral with moderate topology stability. Standard 1.0× confidence multiplier applies.
This adaptive weighting system solves a critical problem in reversal detection: the same geometric catastrophe has different trading implications depending on the fractal regime. A manifold fold in a strong trend suggests a significant reversal opportunity; the same fold in mean-reversion suggests a minor oscillation. The Hurst-based regime filter ensures detection sensitivity automatically adjusts to market character without requiring trader intervention.
The implementation uses logarithmic price returns rather than raw prices to ensure
stationarity, and applies the calculation over a configurable window (default 5 bars) to balance responsiveness with statistical validity. The Hurst value is then smoothed using exponential moving average to reduce noise while maintaining regime transition detection.
Multi-Layer Confirmation Architecture
The system implements five independent confirmation filters that must simultaneously validate
before any singularity signal generates:
1. Catastrophe Threshold : The composite anomaly score must exceed the configured threshold (default 0.65 on 0-1 scale), ensuring the manifold distortion is statistically extreme relative to recent history.
2. Pivot Structure Confirmation : Traditional swing high/low patterns (using ta.pivothigh and ta.pivotlow with configurable lookback) must form at the catastrophe bar. This ensures the geometric singularity coincides with observable price structure rather than occurring mid-swing where interpretation is ambiguous.
3. Swing Size Validation : The pivot magnitude must exceed a minimum threshold measured in ATR units (default 1.5× Average True Range). This filter prevents signals on insignificant price jiggles that lack meaningful reversal potential, ensuring only substantial swings with adequate risk/reward ratios generate signals.
4. Volume Confirmation : Current volume must exceed 1.3× the 20-period moving average, confirming genuine market participation rather than low-liquidity price noise. Manifold catastrophes without volume support often represent false topology breaks that don't translate to sustained directional change.
5. Regime Validity : The market must be classified as either trending (ADX > configured threshold, default 30) or volatile (ATR expansion > configured threshold, default 40% above 30-bar average), and must NOT be in choppy/ranging state. This critical filter prevents trading during geometrically unfavorable conditions where edge deteriorates.
All five conditions must evaluate true simultaneously for a signal to generate. This conjunction-based logic (AND not OR) dramatically reduces false positives while preserving true reversal detection. The architecture recognizes that geometric catastrophes occur frequently in noisy data, but only those catastrophes that align with confirming evidence across price structure, participation, and regime characteristics represent tradable opportunities.
A cooldown mechanism (default 8 bars between signals) prevents signal clustering at extended pivot zones where the manifold may undergo multiple small catastrophes during a single reversal process.
Direction Classification System
Unlike binary bull/bear systems, the indicator implements a voting mechanism combining four
directional indicators to classify each catastrophe:
Pivot Vote : +1 if pivot low, -1 if pivot high, 0 otherwise
Trend Vote : Based on slow frequency (55-period EMA) slope—+1 if rising, -1 if falling, 0 if flat
Flow Vote : Based on Y-gradient (momentum acceleration)—+1 if positive, -1 if negative, 0 if neutral
Mid-Band Vote : Based on price position relative to medium frequency (21-period EMA)—+1 if above, -1 if below, 0 if at
The total vote sum classifies the singularity: ≥2 votes = Bullish , ≤-2 votes = Bearish , -1 to +1 votes = Neutral (skip) . This majority-consensus approach ensures directional classification requires alignment across multiple timeframes and analysis dimensions rather than relying on a single indicator. Neutral signals (mixed voting) are displayed but should not be traded, as they represent geometric catastrophes without clear directional resolution.
Core Calculation Methodology
Embedding Coordinate Generation
Three normalized phase space coordinates are constructed from price data:
X-Dimension (Velocity Space):
price_velocity = close - close
X = (price_velocity - mean) / stdev over hurstWindow
Y-Dimension (Acceleration Space):
momentum = close - close
momentum_accel = momentum - momentum
Y = (momentum_accel - mean) / stdev over hurstWindow
Z-Dimension (Volume-Weighted Space):
vol_normalized = (volume - mean) / stdev over embedLength
roc = (close - close ) / close
Z = (roc × vol_normalized - mean) / stdev over hurstWindow
These coordinates define a point in 3D phase space for each bar. The trajectory connecting these points is the reconstructed manifold.
Gradient Field Calculation
First derivatives measure local manifold slope:
dX/dt = X - X
dY/dt = Y - Y
Gradient_Magnitude = √
The gradient direction indicates where the manifold is "pushing" price. Positive Y-gradient suggests upward topological pressure; negative Y-gradient suggests downward pressure.
Curvature Tensor Components
Second derivatives measure manifold bending using discrete Laplacian:
Laplacian_X = X - 2×X + X
Laplacian_Y = Y - 2×Y + Y
Laplacian_Magnitude = √
This is then normalized:
Curvature_Normalized = (Laplacian_Magnitude - mean) / stdev over embedLength
High normalized curvature (>1.5) indicates sharp manifold folding.
Complexity Accumulation
Sign changes in curvature field are counted:
Sign_Flip = 1 if sign(Curvature ) ≠ sign(Curvature ), else 0
Topological_Complexity = sum(Sign_Flip) over embedLength window
This measures oscillation frequency in the geometry. Complexity >5 indicates chaotic topology.
Condition Number Stability Analysis
Jacobian matrix sensitivity is approximated:
dX/dp = dX/dt / (price_change + epsilon)
dY/dp = dY/dt / (price_change + epsilon)
Jacobian_Determinant = (dX/dt × dY/dp) - (dX/dp × dY/dt)
Jacobian_Trace = dX/dt + dY/dp
Condition_Number = |Trace| / (|Determinant| + epsilon)
High condition numbers indicate numerical instability near singularities.
Catastrophe Score Assembly
Each metric is converted to percentile rank over embedLength window, then combined:
Curvature_Percentile = percentrank(abs(Curvature_Normalized), embedLength)
Gradient_Percentile = percentrank(Gradient_Magnitude, embedLength)
Condition_Percentile = percentrank(abs(Condition_Z_Score), embedLength)
Complexity_Ratio = clamp(Topological_Complexity / embedLength, 0, 1)
Final score:
Raw_Anomaly = 0.45×Curvature_P + 0.25×Complexity_R + 0.20×Condition_P + 0.10×Gradient_P
Catastrophe_Score = Raw_Anomaly × Hurst_Multiplier
Values are clamped to range.
Hurst Exponent Calculation
Rescaled range analysis on log returns:
Calculate log returns: r = log(close) - log(close )
Compute cumulative deviations from mean
Find range: R = max(cumulative_dev) - min(cumulative_dev)
Calculate standard deviation: S = stdev(r, hurstWindow)
Compute R/S ratio
Hurst = log(R/S) / log(hurstWindow)
Clamp to and smooth with 5-period EMA
Regime Classification Logic
Volatility Regime:
ATR_MA = SMA(ATR(14), 30)
Vol_Expansion = ATR / ATR_MA
Is_Volatile = Vol_Expansion > (1.0 + minVolExpansion)
Trend Regime (Corrected ADX):
Calculate directional movement (DM+, DM-)
Smooth with Wilder's RMA(14)
Compute DI+ and DI- as percentages
Calculate DX = |DI+ - DI-| / (DI+ + DI-) × 100
ADX = RMA(DX, 14)
Is_Trending = ADX > (trendStrength × 100)
Chop Detection:
Is_Chopping = NOT Is_Trending AND NOT Is_Volatile
Regime Validity:
Regime_Valid = (Is_Trending OR Is_Volatile) AND NOT Is_Chopping
Signal Generation Logic
For each bar:
Check if catastrophe score > topologyStrength threshold
Verify regime is valid
Confirm Hurst alignment (trending or mean-reverting with pivot)
Validate pivot quality (price extended outside spectral bands then re-entered)
Confirm volume/volatility participation
Check cooldown period has elapsed
If all true: compute directional vote
If vote ≥2: Bullish Singularity
If vote ≤-2: Bearish Singularity
If -1 to +1: Neutral (display but skip)
All conditions must be true for signal generation.
Visual System Architecture
Spectral Decomposition Layers
Three harmonic frequency bands visualize entropy state:
Layer 1 (Surface Frequency):
Center: EMA(8)
Width: ±0.3 × 0.5 × ATR
Transparency: 75% (most visible)
Represents fast oscillations
Layer 2 (Mid Frequency):
Center: EMA(21)
Width: ±0.5 × 0.5 × ATR
Transparency: 85%
Represents medium cycles
Layer 3 (Deep Frequency):
Center: EMA(55)
Width: ±0.7 × 0.5 × ATR
Transparency: 92% (most transparent)
Represents slow baseline
Convergence of layers indicates low entropy (stable topology). Divergence indicates high entropy (catastrophe building). This decomposition reveals how different frequency components of price movement interact—when all three align, the manifold is in equilibrium; when they separate, topology is unstable.
Energy Radiance Fields
Concentric boxes emanate from each singularity bar:
For each singularity, 5 layers are generated:
Layer n: bar_index ± (n × 1.5 bars), close ± (n × 0.4 × ATR)
Transparency gradient: inner 75% → outer 95%
Color matches signal direction
These fields visualize the "energy well" of the catastrophe—wider fields indicate stronger topology distortion. The exponential expansion creates a natural radiance effect.
Singularity Node Geometry
N-sided polygon (default hexagon) at each signal bar:
Vertices calculated using polar coordinates
Rotation angle: bar_index × 0.1 (creates animation)
Radius: ATR × singularity_strength × 2
Connects vertices with colored lines
The rotating geometric primitive marks the exact catastrophe bar with visual prominence.
Gradient Flow Field
Directional arrows display manifold slope:
Spawns every 3 bars when gradient_magnitude > 0.1
Symbol: "↗" if dY/dt > 0.1, "↘" if dY/dt < -0.1, "→" if neutral
Color: Bull/bear/neutral based on direction
Density limited to flowDensity parameter
Arrows cluster when gradient is strong, creating intuitive topology visualization.
Probability Projection Cones
Forward trajectory from each singularity:
Projects 10 bars forward
Direction based on vote classification
Center line: close + (direction × ATR × 3)
Uncertainty width: ATR × singularity_strength × 2
Dashed boundaries, solid center
These are mathematical projections based on current gradient, not price targets. They visualize expected manifold evolution if topology continues current trajectory.
Dashboard Metrics Explanation
The real-time control panel displays six core metrics plus regime status:
H (Hurst Exponent):
Value: Current Hurst (0-1 scale)
Label: TREND (>0.55), REVERT (<0.45), or RANDOM (0.45-0.55)
Icon: Direction arrow based on regime
Purpose: Shows fractal character—only trade when favorable
Σ (Catastrophe Score):
Value: Current composite anomaly (0-100%)
Bar gauge shows relative strength
Icon: ◆ if above threshold, ○ if below
Purpose: Primary signal strength indicator
κ (Curvature):
Value: Normalized Laplacian magnitude
Direction arrow shows sign
Color codes severity (green<0.8, yellow<1.5, red≥1.5)
Purpose: Shows manifold bending intensity
⟳ (Topology Complexity):
Value: Count of sign flips in curvature
Icon: ◆ if >3, ○ otherwise
Color codes chaos level
Purpose: Indicates geometric instability
V (Volatility Expansion):
Value: ATR expansion percentage above 30-bar average
Icon: ● if volatile, ○ otherwise
Purpose: Confirms energy present for reversal
T (Trend Strength):
Value: ADX reading (0-100)
Icon: ● if trending, ○ otherwise
Purpose: Shows directional bias strength
R (Regime):
Label: EXPLOSIVE / TREND / VOLATILE / CHOP / NEUTRAL
Icon: ✓ if valid, ✗ if invalid
Purpose: Go/no-go filter for trading
STATE (Bottom Display):
Shows: "◆ BULL SINGULARITY" (green), "◆ BEAR SINGULARITY" (red), "◆ WEAK/NEUTRAL" (orange), or "— Monitoring —" (gray)
Purpose: Current signal status at a glance
How to Use This Indicator
Initial Setup and Configuration
Apply the indicator to your chart with default settings as a starting point. The default parameters (21-bar embedding, 5-bar Hurst window, 2.5σ singularity threshold, 0.65 topology confirmation) are optimized for balanced detection across most instruments and timeframes. For very fast markets (scalping crypto, 1-5min charts), consider reducing embedding depth to 13-15 bars and Hurst window to 3 bars for more responsive detection. For slower markets (swing trading stocks, 4H-Daily charts), increase embedding depth to 34-55 bars and Hurst window to 8-10 bars for more stable topology measurement.
Enable the dashboard (top right recommended) to monitor real-time metrics. The control panel is your primary decision interface—glancing at the dashboard should instantly communicate whether conditions favor trading and what the current topology state is. Position and size the dashboard to remain visible but not obscure price action.
Enable regime filtering (strongly recommended) to prevent trading during choppy/ranging conditions where geometric edge deteriorates. This single setting can dramatically improve overall performance by eliminating low-probability environments.
Reading Dashboard Metrics for Trade Readiness
Before considering any trade, verify the dashboard shows favorable conditions:
Hurst (H) Check:
The Hurst Exponent reading is your first filter. Only consider trades when H > 0.50 . Ideal conditions show H > 0.60 with "TREND" label—this indicates persistent directional price movement where manifold catastrophes produce significant reversals. When H < 0.45 (REVERT label), the market is mean-reverting and catastrophes represent minor oscillations rather than substantial pivots. Do not trade in mean-reverting regimes unless you're explicitly using range-bound strategies (which this indicator is not optimized for). When H ≈ 0.50 (RANDOM label), edge is neutral—acceptable but not ideal.
Catastrophe (Σ) Monitoring:
Watch the Σ percentage build over time. Readings consistently below 50% indicate stable topology with no imminent reversals. When Σ rises above 60-65%, manifold distortion is approaching critical levels. Signals only fire when Σ exceeds the configured threshold (default 65%), so this metric pre-warns you of potential upcoming catastrophes. High-conviction setups show Σ > 75%.
Regime (R) Validation:
The regime classification must read TREND, VOLATILE, or EXPLOSIVE—never trade when it reads CHOP or NEUTRAL. The checkmark (✓) must be present in the regime cell for trading conditions to be valid. If you see an X (✗), skip all signals until regime improves. This filter alone eliminates most losing trades by avoiding geometrically unfavorable environments.
Combined High-Conviction Profile:
The strongest trading opportunities show simultaneously:
H > 0.60 (strong trending regime)
Σ > 75% (extreme topology distortion)
R = EXPLOSIVE or TREND with ✓
κ (Curvature) > 1.5 (sharp manifold fold)
⟳ (Complexity) > 4 (chaotic geometry)
V (Volatility) showing elevated ATR expansion
When all metrics align in this configuration, the manifold is undergoing severe distortion in a favorable fractal regime—these represent maximum-conviction reversal opportunities.
Signal Interpretation and Entry Logic
Bullish Singularity (▲ Green Triangle Below Bar):
This marker appears when the system detects a manifold catastrophe at a price low with bullish directional consensus. All five confirmation filters have aligned: topology score exceeded threshold, pivot low structure formed, swing size was significant, volume/volatility confirmed participation, and regime was valid. The green color indicates the directional vote totaled +2 or higher (majority bullish).
Trading Approach: Consider long entry on the bar immediately following the signal (bar after the triangle). The singularity bar itself is where the geometric catastrophe occurred—entering after allows you to see if price confirms the reversal. Place stop loss below the singularity bar's low (with buffer of 0.5-1.0 ATR for volatility). Initial target can be the previous swing high, or use the probability cone projection as a guide (though not a guarantee). Monitor the dashboard STATE—if it flips to "◆ BEAR SINGULARITY" or Hurst drops significantly, consider exiting even if target not reached.
Bearish Singularity (▼ Red Triangle Above Bar):
This marker appears when the system detects a manifold catastrophe at a price high with bearish directional consensus. Same five-filter confirmation process as bullish signals. The red color indicates directional vote totaled -2 or lower (majority bearish).
Trading Approach: Consider short entry on the bar following the signal. Place stop loss above the singularity bar's high (with buffer). Target previous swing low or use cone projection as reference. Exit if opposite signal fires or Hurst deteriorates.
Neutral Signal (● Orange Circle at Price Level):
This marker indicates the catastrophe detection system identified a topology break that passed catastrophe threshold and regime filters, but the directional voting system produced a mixed result (vote between -1 and +1). This means the four directional components (pivot, trend, flow, mid-band) are not in agreement about which way the reversal should resolve.
Trading Approach: Skip these signals. Neutral markers are displayed for analytical completeness but should not be traded. They represent geometric catastrophes without clear directional resolution—essentially, the manifold is breaking but the direction of the break is ambiguous. Trading neutral signals dramatically increases false signal rate. Only trade green (bullish) or red (bearish) singularities.
Visual Confirmation Using Spectral Layers
The three colored ribbons (spectral decomposition layers) provide entropy visualization that helps confirm signal quality:
Divergent Layers (High Entropy State):
When the three frequency bands (fast 8-period, medium 21-period, slow 55-period) are separated with significant gaps between them, the manifold is in high entropy state—different frequency components of price movement are pulling in different directions. This geometric tension precedes catastrophes. Strong signals often occur when layers are divergent before the signal, then begin reconverging immediately after.
Convergent Layers (Low Entropy State):
When all three ribbons are tightly clustered or overlapping, the manifold is in equilibrium—all frequency components agree. This stable geometry makes catastrophe detection more reliable because topology breaks clearly stand out against the baseline stability. If you see layers converge, then a singularity fires, then layers diverge, this pattern suggests a genuine regime transition.
Signal Quality Assessment:
High-quality singularity signals should show:
Divergent layers (high entropy) in the 5-10 bars before signal
Singularity bar occurs when price has extended outside at least one of the spectral bands (shows pivot extended beyond equilibrium)
Close of singularity bar re-enters the spectral band zone (shows mean reversion starting)
Layers begin reconverging in 3-5 bars after signal (shows new equilibrium forming)
This pattern visually confirms the geometric narrative: manifold became unstable (divergence), reached critical distortion (extended outside equilibrium), broke catastrophically (singularity), and is now stabilizing in new direction (reconvergence).
Using Energy Fields for Trade Management
The concentric glowing boxes around each singularity visualize the topology distortion
magnitude:
Wide Energy Fields (5+ Layers Visible):
Large radiance indicates strong catastrophe with high manifold curvature. These represent significant topology breaks and typically precede larger price moves. Wide fields justify wider profit targets and longer hold times. The outer edge of the largest box can serve as a dynamic support/resistance zone—price often respects these geometric boundaries.
Narrow Energy Fields (2-3 Layers):
Smaller radiance indicates moderate catastrophe. While still valid signals (all filters passed), expect smaller follow-through. Use tighter profit targets and be prepared for quicker exit if momentum doesn't develop. These are valid but lower-conviction trades.
Field Interaction Zones:
When energy fields from consecutive signals overlap or touch, this indicates a prolonged topology distortion region—often corresponds to consolidation zones or complex reversal patterns (head-and-shoulders, double tops/bottoms). Be more cautious in these areas as the manifold is undergoing extended restructuring rather than a clean catastrophe.
Probability Cone Projections
The dashed cone extending forward from each singularity is a mathematical projection, not a
price target:
Cone Direction:
The center line direction (upward for bullish, downward for bearish, flat for neutral) shows the expected trajectory based on current manifold gradient and singularity direction. This is where the topology suggests price "should" go if the catastrophe completes normally.
Cone Width:
The uncertainty band (upper and lower dashed boundaries) represents the range of outcomes given current volatility (ATR-based). Wider cones indicate higher uncertainty—expect more price volatility even if direction is correct. Narrower cones suggest more constrained movement.
Price-Cone Interaction:
Price following near the center line = catastrophe resolving as expected, geometric projection accurate
Price breaking above upper cone = stronger-than-expected reversal, consider holding for larger targets
Price breaking below lower cone (for bullish signal) = catastrophe failing, manifold may be re-folding in opposite direction, consider exit
Price oscillating within cone = normal reversal process, hold position
The 10-bar projection length means cones show expected behavior over the next ~10 bars. Don't confuse this with longer-term price targets.
Gradient Flow Field Interpretation
The directional arrows (↗, ↘, →) scattered across the chart show the manifold's Y-gradient (vertical acceleration dimension):
Upward Arrows (↗):
Positive Y-gradient indicates the momentum acceleration dimension is pushing upward—the manifold topology has upward "slope" at this location. Clusters of upward arrows suggest bullish topological pressure building. These often appear before bullish singularities fire.
Downward Arrows (↘):
Negative Y-gradient indicates downward topological pressure. Clusters precede bearish singularities.
Horizontal Arrows (→):
Neutral gradient indicates balanced topology with no strong directional pressure.
Using Flow Field:
The arrows provide real-time topology state information even between singularity signals. If you're in a long position from a bullish singularity and begin seeing increasing downward arrows appearing, this suggests manifold gradient is shifting—consider tightening stops. Conversely, if arrows remain upward or neutral, topology supports continuation.
Don't confuse arrow direction with immediate price direction—arrows show geometric slope, not price prediction. They're confirmatory context, not entry signals themselves.
Parameter Optimization for Your Trading Style
For Scalping / Fast Trading (1m-15m charts):
Embedding Depth: 13-15 bars (faster topology reconstruction)
Hurst Window: 3 bars (responsive fractal detection)
Singularity Threshold: 2.0-2.3σ (more sensitive)
Topology Confirmation: 0.55-0.60 (lower barrier)
Min Swing Size: 0.8-1.2 ATR (accepts smaller moves)
Pivot Lookback: 3-4 bars (quick pivot detection)
This configuration increases signal frequency for active trading but requires diligent monitoring as false signal rate increases. Use tighter stops.
For Day Trading / Standard Approach (15m-4H charts):
Keep default settings (21 embed, 5 Hurst, 2.5σ, 0.65 confirmation, 1.5 ATR, 5 pivot)
These are balanced for quality over quantity
Best win rate and risk/reward ratio
Recommended for most traders
For Swing Trading / Position Trading (4H-Daily charts):
Embedding Depth: 34-55 bars (stable long-term topology)
Hurst Window: 8-10 bars (smooth fractal measurement)
Singularity Threshold: 3.0-3.5σ (only extreme catastrophes)
Topology Confirmation: 0.75-0.85 (high conviction only)
Min Swing Size: 2.5-4.0 ATR (major moves only)
Pivot Lookback: 8-13 bars (confirmed swings)
This configuration produces infrequent but highly reliable signals suitable for position sizing and longer hold times.
Volatility Adaptation:
In extremely volatile instruments (crypto, penny stocks), increase Min Volatility Expansion to 0.6-0.8 to avoid over-signaling during "always volatile" conditions. In stable instruments (major forex pairs, blue-chip stocks), decrease to 0.3 to allow signals during moderate volatility spikes.
Trend vs Range Preference:
If you prefer trading only strong trends, increase Min Trend Strength to 0.5-0.6 (ADX > 50-60). If you're comfortable with volatility-based trading in weaker trends, decrease to 0.2 (ADX > 20). The default 0.3 balances both approaches.
Complete Trading Workflow Example
Step 1 - Pre-Session Setup:
Load chart with MSE indicator. Check dashboard position is visible. Verify regime filter is enabled. Review recent signals to gauge current instrument behavior.
Step 2 - Market Assessment:
Observe dashboard Hurst reading. If H < 0.45 (mean-reverting), consider skipping this session or using other strategies. If H > 0.50, proceed. Check regime shows TREND, VOLATILE, or EXPLOSIVE with checkmark—if CHOP, wait for regime shift alert.
Step 3 - Signal Wait:
Monitor catastrophe score (Σ). Watch for it climbing above 60%. Observe spectral layers—look for divergence building. If you see curvature (κ) rising above 1.0 and complexity (⟳) increasing, catastrophe is building. Do not anticipate—wait for the actual signal marker.
Step 4 - Signal Recognition:
▲ Bullish or ▼ Bearish triangle appears at a bar. Dashboard STATE changes to "◆ BULL/BEAR SINGULARITY". Energy field appears around the signal bar. Check signal quality:
Was Σ > 70% at signal? (Higher quality)
Are energy fields wide? (Stronger catastrophe)
Did layers diverge before and reconverge after? (Clean break)
Is Hurst still > 0.55? (Good regime)
Step 5 - Entry Decision:
If signal is green/red (not orange neutral), all confirmations look strong, and no immediate contradicting factors appear, prepare entry on next bar open. Wait for confirmation bar to form—ideally it should close in the signal direction (bullish signal → bar closes higher, bearish signal → bar closes lower).
Step 6 - Position Entry:
Enter at open or shortly after open of bar following signal bar. Set stop loss: for bullish signals, place stop at singularity_bar_low - (0.75 × ATR); for bearish signals, place stop at singularity_bar_high + (0.75 × ATR). The buffer accommodates volatility while protecting against catastrophe failure.
Step 7 - Trade Management:
Monitor dashboard continuously:
If Hurst drops below 0.45, consider reducing position
If opposite singularity fires, exit immediately (manifold has re-folded)
If catastrophe score drops below 40% and stays there, topology has stabilized—consider partial profit taking
Watch gradient flow arrows—if they shift to opposite direction persistently, tighten stops
Step 8 - Profit Taking:
Use probability cone as a guide—if price reaches outer cone boundary, consider taking partial profits. If price follows center line cleanly, hold for larger target. Traditional technical targets work well: previous swing high/low, round numbers, Fibonacci extensions. Don't expect precision—manifold projections give direction and magnitude estimates, not exact prices.
Step 9 - Exit:
Exit on: (a) opposite signal appears, (b) dashboard shows regime became invalid (checkmark changes to X), (c) technical target reached, (d) Hurst deteriorates significantly, (e) stop loss hit, or (f) time-based exit if using session limits. Never hold through opposite singularity signals—the manifold has broken in the other direction and your trade thesis is invalidated.
Step 10 - Post-Trade Review:
After exit, review: Did the probability cone projection align with actual price movement? Were the energy fields proportional to move size? Did spectral layers show expected reconvergence? Use these observations to calibrate your interpretation of signal quality over time.
Best Performance Conditions
This topology-based approach performs optimally in specific market environments:
Favorable Conditions:
Well-Developed Swing Structure: Markets with clear rhythm of advances and declines where pivots form at regular intervals. The manifold reconstruction depends on swing formation, so instruments that trend in clear waves work best. Stocks, major forex pairs during active sessions, and established crypto assets typically exhibit this characteristic.
Sufficient Volatility for Topology Development: The embedding process requires meaningful price movement to construct multi-dimensional coordinates. Extremely quiet markets (tight consolidations, holiday trading, after-hours) lack the volatility needed for manifold differentiation. Look for ATR expansion above average—when volatility is present, geometry becomes meaningful.
Trending with Periodic Reversals: The ideal environment is not pure trend (which rarely reverses) nor pure range (which reverses constantly at small scale), but rather trending behavior punctuated by occasional significant counter-trend reversals. This creates the catastrophe conditions the system is designed to detect: manifold building directional momentum, then undergoing sharp topology break at extremes.
Liquid Instruments Where EMAs Reflect True Flow: The spectral layers and frequency decomposition require that moving averages genuinely represent market consensus. Thinly traded instruments with sporadic orders don't create smooth manifold topology. Prefer instruments with consistent volume where EMA calculations reflect actual capital flow rather than random tick sequences.
Challenging Conditions:
Extremely Choppy / Whipsaw Markets: When price oscillates rapidly with no directional persistence (Hurst < 0.40), the manifold undergoes constant micro-catastrophes that don't translate to tradable reversals. The regime filter helps avoid these, but awareness is important. If you see multiple neutral signals clustering with no follow-through, market is too chaotic for this approach.
Very Low Volatility Consolidation: Tight ranges with ATR below average cause the embedding coordinates to compress into a small region of phase space, reducing geometric differentiation. The manifold becomes nearly flat, and catastrophe detection loses sensitivity. The regime filter's volatility component addresses this, but manually avoiding dead markets improves results.
Gap-Heavy Instruments: Stocks that gap frequently (opening outside previous close) create discontinuities in the manifold trajectory. The embedding process assumes continuous evolution, so gaps introduce artifacts. Most gaps don't invalidate the approach, but instruments with daily gaps >2% regularly may show degraded performance. Consider using higher timeframes (4H, Daily) where gaps are less proportionally significant.
Parabolic Moves / Blowoff Tops: When price enters an exponential acceleration phase (vertical rally or crash), the manifold evolves too rapidly for the standard embedding window to track. Catastrophe detection may lag or produce false signals mid-move. These conditions are rare but identifiable by Hurst > 0.75 combined with ATR expansion >2.0× average. If detected, consider sitting out or using very tight stops as geometry is in extreme distortion.
The system adapts by reducing signal frequency in poor conditions—if you notice long periods with no signals, the topology likely lacks the geometric structure needed for reliable catastrophe detection. This is a feature, not a bug: it prevents forced trading during unfavorable environments.
Theoretical Justification for Approach
Why Manifold Embedding?
Traditional technical analysis treats price as a one-dimensional time series: current price is predicted from past prices in sequential order. This approach ignores the structure of price dynamics—the relationships between velocity, acceleration, and participation that govern how price actually evolves.
Dynamical systems theory (from physics and mathematics) provides an alternative framework: treat price as a state variable in a multi-dimensional phase space. In this view, each market condition corresponds to a point in N-dimensional space, and market evolution is a trajectory through this space. The geometry of this space (its topology) constrains what trajectories are possible.
Manifold embedding reconstructs this hidden geometric structure from observable price data. By creating coordinates from velocity, momentum acceleration, and volume-weighted returns, we map price evolution onto a 3D surface. This surface—the manifold—reveals geometric relationships that aren't visible in price charts alone.
The mathematical theorem underlying this approach (Takens' Embedding Theorem from dynamical systems theory) proves that for deterministic or weakly stochastic systems, a state space reconstruction from time-delayed observations of a single variable captures the essential dynamics of the full system. We apply this principle: even though we only observe price, the embedded coordinates (derivatives of price) reconstruct the underlying dynamical structure.
Why Catastrophe Theory?
Catastrophe theory, developed by mathematician René Thom (Fields Medal 1958), describes how continuous systems can undergo sudden discontinuous changes when control parameters reach critical values. A classic example: gradually increasing force on a beam causes smooth bending, then sudden catastrophic buckling. The beam's geometry reaches a critical curvature where topology must break.
Markets exhibit analogous behavior: gradual price changes build tension in the manifold topology until critical distortion is reached, then abrupt directional change occurs (reversal). Catastrophes aren't random—they're mathematically necessary when geometric constraints are violated.
The indicator detects these geometric precursors: high curvature (manifold bending sharply), high complexity (topology oscillating chaotically), high condition number (coordinate mapping becoming singular). These metrics quantify how close the manifold is to a catastrophic fold. When all simultaneously reach extreme values, topology break is imminent.
This provides a logical foundation for reversal detection that doesn't rely on pattern recognition or historical correlation. We're measuring geometric properties that mathematically must change when systems reach critical states. This is why the approach works across different instruments and timeframes—the underlying geometry is universal.
Why Hurst Exponent?
Markets exhibit fractal behavior: patterns at different time scales show statistical self-similarity. The Hurst exponent quantifies this fractal structure by measuring long-range dependence in returns.
Critically for trading, Hurst determines whether recent price movement predicts future direction (H > 0.5) or predicts the opposite (H < 0.5). This is regime detection: trending vs mean-reverting behavior.
The same manifold catastrophe has different trading implications depending on regime. In trending regime (high Hurst), catastrophes represent significant reversal opportunities because the manifold has been building directional momentum that suddenly breaks. In mean-reverting regime (low Hurst), catastrophes represent minor oscillations because the manifold constantly folds at small scales.
By weighting catastrophe signals based on Hurst, the system adapts detection sensitivity to the current fractal regime. This is a form of meta-analysis: not just detecting geometric breaks, but evaluating whether those breaks are meaningful in the current fractal context.
Why Multi-Layer Confirmation?
Geometric anomalies occur frequently in noisy market data. Not every high-curvature point represents a tradable reversal—many are artifacts of microstructure noise, order flow imbalances, or low-liquidity ticks.
The five-filter confirmation system (catastrophe threshold, pivot structure, swing size, volume, regime) addresses this by requiring geometric anomalies to align with observable market evidence. This conjunction-based logic implements the principle: extraordinary claims require extraordinary evidence .
A manifold catastrophe (extraordinary geometric event) alone is not sufficient. We additionally require: price formed a pivot (visible structure), swing was significant (adequate magnitude), volume confirmed participation (capital backed the move), and regime was favorable (trending or volatile, not chopping). Only when all five dimensions agree do we have sufficient evidence that the geometric anomaly represents a genuine reversal opportunity rather than noise.
This multi-dimensional approach is analogous to medical diagnosis: no single test is conclusive, but when multiple independent tests all suggest the same condition, confidence increases dramatically. Each filter removes a different category of false signals, and their combination creates a robust detection system.
The result is a signal set with dramatically improved reliability compared to any single metric alone. This is the power of ensemble methods applied to geometric analysis.
Important Disclaimers
This indicator applies mathematical topology and catastrophe theory to multi-dimensional price space reconstruction. It identifies geometric conditions where manifold curvature, topological complexity, and coordinate singularities suggest potential reversal zones based on phase space analysis. It should not be used as a standalone trading system.
The embedding coordinates, catastrophe scores, and Hurst calculations are deterministic mathematical formulas applied to historical price data. These measurements describe current and recent geometric relationships in the reconstructed manifold but do not predict future price movements. Past geometric patterns and singularity markers do not guarantee future market behavior will follow similar topology evolution.
The manifold reconstruction assumes certain mathematical properties (sufficient embedding dimension, quasi-stationarity, continuous dynamics) that may not hold in all market conditions. Gaps, flash crashes, circuit breakers, news events, and other discontinuities can violate these assumptions. The system attempts to filter problematic conditions through regime classification, but cannot eliminate all edge cases.
The spectral decomposition, energy fields, and probability cones are visualization aids that represent mathematical constructs, not price predictions. The probability cone projects current gradient forward assuming topology continues current trajectory—this is a mathematical "if-then" statement, not a forecast. Market topology can and does change unexpectedly.
All trading involves substantial risk. The singularity markers represent analytical conditions where geometric mathematics align with threshold criteria, not certainty of directional change. Use appropriate risk management for every trade: position sizing based on account risk tolerance (typically 1-2% maximum risk per trade), stop losses placed beyond recent structure plus volatility buffer, and never risk capital needed for living expenses.
The confirmation filters (pivot, swing size, volume, regime) are designed to reduce false signals but cannot eliminate them entirely. Markets can produce geometric anomalies that pass all filters yet fail to develop into sustained reversals. This is inherent to probabilistic systems operating on noisy real-world data.
No indicator can guarantee profitable trades or eliminate losses. The catastrophe detection provides an analytical framework for identifying potential reversal conditions, but actual trading outcomes depend on numerous factors including execution, slippage, spreads, position sizing, risk management, psychological discipline, and market conditions that may change after signal generation.
Use this tool as one component of a comprehensive trading plan that includes multiple forms of analysis, proper risk management, emotional discipline, and realistic expectations about win rates and drawdowns. Combine catastrophe signals with additional confirmation methods such as support/resistance analysis, volume patterns, multi-timeframe alignment, and broader market context.
The spacing filter, cooldown mechanism, and regime validation are designed to reduce noise and over-signaling, but market conditions can change rapidly and render any analytical signal invalid. Always use stop losses and never risk capital you cannot afford to lose. Past performance of detection accuracy does not guarantee future results.
Technical Implementation Notes
All calculations execute on closed bars only—signals and metric values do not repaint after bar close. The indicator does not use any lookahead bias in its calculations. However, the pivot detection mechanism (ta.pivothigh and ta.pivotlow) inherently identifies pivots with a lag equal to the lookback parameter, meaning the actual pivot occurred at bar but is recognized at bar . This is standard behavior for pivot functions and is not repainting—once recognized, the pivot bar never changes.
The normalization system (z-score transformation over rolling windows) requires approximately 30-50 bars of historical data to establish stable statistics. Values in the first 30-50 bars after adding the indicator may show instability as the rolling means and standard deviations converge. Allow adequate warmup period before relying on signals.
The spectral layer arrays, energy field boxes, gradient flow labels, and node geometry lines are subject to TradingView drawing object limits (500 lines, 500 boxes, 500 labels per indicator as specified in settings). The system implements automatic cleanup by deleting oldest objects when limits approach, but on very long charts with many signals, some historical visual elements may be removed to stay within limits. This does not affect signal generation or dashboard metrics—only historical visual artifacts.
Dashboard and visual rendering update only on the last bar to minimize computational overhead. The catastrophe detection logic executes on every bar, but table cells and drawing objects refresh conditionally to optimize performance. If experiencing chart lag, reduce visual complexity: disable spectral layers, energy fields, or flow field to improve rendering speed. Core signal detection continues to function with all visual elements disabled.
The Hurst calculation uses logarithmic returns rather than raw price to ensure stationarity, and implements clipping to range to handle edge cases where R/S analysis produces invalid values (which can occur during extended periods of identical prices or numerical overflow). The 5-period EMA smoothing reduces noise while maintaining responsiveness to regime transitions.
The condition number calculation adds epsilon (1e-10) to denominators to prevent division by zero when Jacobian determinant approaches zero—which is precisely the singularity condition we're detecting. This numerical stability measure ensures the indicator doesn't crash when detecting the very phenomena it's designed to identify.
The indicator has been tested across multiple timeframes (5-minute through daily) and multiple asset classes (forex majors, stock indices, individual equities, cryptocurrencies, commodities, futures). It functions identically across all instruments due to the adaptive normalization approach and percentage-based metrics. No instrument-specific code or parameter sets are required.
The color scheme system implements seven preset themes plus custom mode. Color assignments are applied globally and affect all visual elements simultaneously. The opacity calculation system multiplies component-specific transparency with master opacity to create hierarchical control—adjusting master opacity affects all visuals proportionally while maintaining their relative transparency relationships.
All alert conditions trigger only on bar close to prevent false alerts from intrabar fluctuations. The regime transition alerts (VALID/INVALID) are particularly useful for knowing when trading edge appears or disappears, allowing traders to adjust activity levels accordingly.
— Dskyz, Trade with insight. Trade with anticipation.
SigmaKernel - AdaptiveSigmaKernel - Adaptive Self-Optimizing Multi-Factor Trading System
SigmaKernel - Adaptive is a self-learning algorithmic trading strategy that combines four distinct analytical dimensions—momentum, market structure, volume flow, and reversal patterns—within a machine-learning-inspired framework that continuously adjusts its own parameters based on realized trading performance. Unlike traditional fixed-parameter strategies that maintain static weightings regardless of market conditions or results, this system implements a feedback loop that tracks which signal types, directional biases, and market conditions produce profitable outcomes, then mathematically adjusts component weightings, minimum score thresholds, position sizing multipliers, and trade spacing requirements to optimize future performance.
The strategy is designed for futures traders operating on prop firm accounts or live capital, incorporating realistic execution mechanics including configurable entry modes (stop breakout orders, limit pullback entries, or market-on-open), commission structures calibrated to retail futures contracts ($0.62 per contract default), one-tick slippage modeling, and professional risk controls including trailing drawdown guards, daily loss limits, and weekly profit targets. The system features universal futures compatibility—it automatically detects and adapts to any futures contract by reading the instrument's tick size and point value directly from the chart, eliminating the need for manual configuration across different markets.
What Makes This Approach Different
Adaptive Weight Optimization System
The core differentiation is the adaptive learning architecture. The strategy maintains four independent scoring components: momentum analysis (using RSI multi-timeframe, MACD histogram, and DMI/ADX), market structure detection (breakout identification via pivot-based support/resistance and moving average positioning), volume flow analysis (Volume Price Trend indicator with standard deviation confirmation), and reversal pattern recognition (oversold/overbought conditions combined with structural levels).
Each component generates a directional score that is multiplied by its current weight. After every closed trade, the system performs a retrospective analysis on the last N trades (configurable Learning Period, default 15 trades) to calculate win rates for each signal type independently. For example, if momentum-driven trades won 65% of the time while reversal trades won only 35%, the adaptive algorithm increases the momentum weight and decreases the reversal weight proportionally. The adjustment formula is:
New_Weight = Current_Weight + (Component_Win_Rate - Average_Win_Rate) × Adaptation_Speed
This creates a self-correcting mechanism where successful signal generators receive more influence in future composite scores, while underperforming components are de-emphasized. The system separately tracks long versus short win rates and applies directional bias corrections—if shorts consistently outperform longs, the strategy applies a 10% reduction to bullish signals to prevent fighting the prevailing market character.
Dynamic Parameter Adjustment
Beyond component weightings, three critical strategy parameters self-adjust based on performance:
Minimum Signal Score: The threshold required to trigger a trade. If overall win rate falls below 45%, the system increments this threshold by 0.10 per adjustment cycle, making the strategy more selective. If win rate exceeds 60%, the threshold decreases to allow more opportunities. This prevents the strategy from overtrading during unfavorable conditions and capitalizes on high-probability environments.
Risk Multiplier: Controls position sizing aggression. When drawdown exceeds 5%, risk per trade reduces by 10% per cycle. When drawdown falls below 2%, risk increases by 5% per cycle. This implements the professional risk management principle of "bet small when losing, bet bigger when winning" algorithmically.
Bars Between Trades: Spacing filter to prevent overtrading. Base value (default 9 bars) multiplies by drawdown factor and losing streak factor. During drawdown or consecutive losses, spacing expands up to 2x to allow market conditions to change before re-entering.
All adaptation operates during live forward-testing or real trading—there is no in-sample optimization applied to historical data. The system learns solely from its own realized trades.
Universal Futures Compatibility
The strategy implements universal futures instrument detection that automatically adapts to any futures contract without requiring manual configuration. Instead of hardcoding specific contract specifications, the system reads three critical values directly from TradingView's symbol information:
Tick Size Detection: Uses `syminfo.mintick` to obtain the minimum price increment for the current instrument. This value varies widely across markets—ES trades in 0.25 ticks, crude oil (CL) in 0.01 ticks, gold (GC) in 0.10 ticks, and treasury futures (ZB) in increments of 1/32nds. The strategy adapts all entry buffer calculations and stop placement logic to the detected tick size.
Point Value Detection: Uses `syminfo.pointvalue` to determine the dollar value per full point of price movement. For ES, one point equals $50; for crude oil, one point equals $1,000; for gold, one point equals $100. This automatic detection ensures accurate P&L calculations and risk-per-contract measurements across all instruments.
Tick Value Calculation: Combines tick size and point value to compute dollar value per tick: Tick_Value = Tick_Size × Point_Value. This derived value drives all position sizing calculations, ensuring the risk management system correctly accounts for each instrument's economic characteristics.
This universal approach means the strategy functions identically on emini indices (ES, MES, NQ, MNQ), micro indices, energy contracts (CL, NG, RB), metals (GC, SI, HG), agricultural futures (ZC, ZS, ZW), treasury futures (ZB, ZN, ZF), currency futures (6E, 6J, 6B), and any other futures contract available on TradingView. No parameter adjustments or instrument-specific branches exist in the code—the adaptation happens automatically through symbol information queries.
Stop-Out Rate Monitoring System
The strategy includes an intelligent stop-out rate tracking system that monitors the percentage of your last 20 trades (or available trades if fewer than 20) that were stopped out. This metric appears in the dashboard's Performance section with color-coded guidance:
Green (<30% stop-out rate): Very few trades are being stopped out. This suggests either your stops are too loose (giving back profits on reversals) or you're in an exceptional trending market. Consider tightening your Stop Loss ATR multiplier to lock in profits more efficiently.
Orange (30-65% stop-out rate): Healthy range. Your stop placement is appropriately sized for current market conditions and the strategy's risk-reward profile. No adjustment needed.
Red (>65% stop-out rate): Too many trades are being stopped out prematurely. Your stops are likely too tight for the current volatility regime. Consider widening your Stop Loss ATR multiplier to give trades more room to develop.
Critical Design Philosophy: Unlike some systems that automatically adjust stops based on performance statistics, this strategy intentionally keeps stop-loss control in the user's hands. Automatic stop adjustment creates dangerous feedback loops—widening stops increases risk per contract, which forces position size reduction, which distorts performance metrics, leading to incorrect adaptations. Instead, the dashboard provides visibility into stop performance, empowering you to make informed manual adjustments when warranted. This preserves the integrity of the adaptive system while giving you the critical data needed for stop optimization.
Execution Kernel Architecture
The entry system offers three distinct execution modes to match trader preference and market character:
StopBreakout Mode: Places buy-stop orders above the prior bar's high (for longs) or sell-stop orders below the prior bar's low (for shorts), plus a 2-tick buffer. This ensures entries only occur when price confirms directional momentum by breaking recent structure. Ideal for trending and momentum-driven markets.
LimitPullback Mode: Places limit orders at a pullback price calculated as: Entry_Price = Close - (ATR × Pullback_Multiplier) for longs, or Close + (ATR × Pullback_Multiplier) for shorts. Default multiplier is 0.5 ATR. This waits for mean-reversion before entering in the signal direction, capturing better prices in volatile or oscillating markets.
MarketNextOpen Mode: Executes at market on the bar immediately following signal generation. This provides fastest execution but sacrifices the filtering effect of requiring price confirmation.
All pending entry orders include a configurable Time-To-Live (TTL, default 6 bars). If an order is not filled within the TTL period, it cancels automatically to prevent stale signals from executing in changed market conditions.
Professional Exit Management
The exit system implements a three-stage progression: initial stop loss, breakeven adjustment, and dynamic trailing stop.
Initial Stop Loss: Calculated as entry price ± (ATR × User_Stop_Multiplier × Volatility_Adjustment). Users have direct control via the Stop Loss ATR multiplier (default 1.25). The system then applies volatility regime adjustments: ×1.2 in high-volatility environments (stops automatically widen), ×0.8 in low volatility (stops tighten), ×1.0 in normal conditions. This ensures stops adapt to market character while maintaining user control over baseline risk tolerance.
Breakeven Trigger: When profit reaches a configurable multiple of initial risk (default 1.0R), the stop loss automatically moves to breakeven (entry price). This locks in zero-loss status once the trade demonstrates favorable movement.
Trailing Stop Activation: When profit reaches the Trail_Trigger_R multiple (default 1.2R), the system cancels the fixed stop and activates a dynamic trailing stop. The trail uses Step and Offset parameters defined in R-multiples. For example, with Trail_Offset_R = 1.0 and Trail_Step_R = 1.5, the stop trails 1.0R behind price and moves in 1.5R increments. This captures extended moves while protecting accumulated profit.
Additional failsafes include maximum time-in-trade (exits after N bars if specified) and end-of-session flatten (automatically closes all positions X minutes before session end to avoid overnight exposure).
Core Calculation Methodology
Signal Component Scoring
Momentum Component:
- Calculates 14-period DMI (Directional Movement Index) with ADX strength filter (trending when ADX > 25)
- Computes three RSI timeframes: fast (7-period), medium (14-period), slow (21-period)
- Analyzes MACD (12/26/9) histogram for directional acceleration
- Bullish momentum: uptrend (DI+ > DI- with ADX > 25) + MACD histogram rising above zero + RSI fast between 50-80 = +1.6 score
- Bearish momentum: downtrend (DI- > DI+ with ADX > 25) + MACD histogram falling below zero + RSI fast between 20-50 = -1.6 score
- Score multiplies by volatility adjustment factor: ×0.8 in high volatility (momentum less reliable), ×1.2 in low volatility (momentum more persistent)
Structure Component:
- Identifies swing highs and lows using 10-bar pivot lookback on both sides
- Maintains most recent swing high as dynamic resistance, most recent swing low as dynamic support
- Detects breakouts: bullish when close crosses above resistance with prior bar below; bearish when close crosses below support with prior bar above
- Breakout score: ±1.0 for confirmed break
- Moving average alignment: +0.5 when price > SMA20 > SMA50 (bullish structure); -0.5 when price < SMA20 < SMA50 (bearish structure)
- Total structure range: -1.5 to +1.5
Volume Component:
- Calculates Volume Price Trend: VPT = Σ [(Close - Close ) / Close × Volume]
- Compares VPT to its 10-period EMA as signal line (similar to MACD logic)
- Computes 20-period volume moving average and standard deviation
- High volume event: current volume > (volume_average + 1× std_dev)
- Bullish volume: VPT > VPT_signal AND high_volume = +1.0
- Bearish volume: VPT < VPT_signal AND high_volume = -1.0
- No score if volume is not elevated (filters out low-conviction moves)
Reversal Component:
- Identifies extreme RSI conditions: RSI slow < 30 (oversold) or > 70 (overbought)
- Requires structural confluence: price at or below support level for bullish reversal; at or above resistance for bearish reversal
- Requires momentum shift: RSI fast must be rising (for bull) or falling (for bear) to confirm reversal in progress
- Bullish reversal: RSI < 30 AND price ≤ support AND RSI rising = +1.0
- Bearish reversal: RSI > 70 AND price ≥ resistance AND RSI falling = -1.0
Composite Score Calculation
Final_Score = (Momentum × Weight_M) + (Structure × Weight_S) + (Volume × Weight_V) + (Reversal × Weight_R)
Initial weights: Momentum = 1.0, Structure = 1.2, Volume = 0.8, Reversal = 0.6
These weights adapt after each trade based on component-specific performance as described above.
The system also applies directional bias adjustment: if recent long trades have significantly lower win rate than shorts, bullish scores multiply by 0.9 to reduce aggressive long entries. Vice versa for underperforming shorts.
Position Sizing Algorithm
The position sizing calculation incorporates multiple confidence factors and automatically scales to any futures contract:
1. Base risk amount = Account_Size × Base_Risk_Percent × Adaptive_Risk_Multiplier
2. Stop distance in price units = ATR × User_Stop_Multiplier × Volatility_Regime_Multiplier × Entry_Buffer
3. Risk per contract = Stop_Distance × Dollar_Per_Point (automatically detected from instrument)
4. Raw position size = Risk_Amount / Risk_Per_Contract
Then applies confidence scaling:
- Signal confidence = min(|Weighted_Score| / Min_Score_Threshold, 2.0) — higher scores receive larger size, capped at 2×
- Direction confidence = Long_Win_Rate (for bulls) or Short_Win_Rate (for bears)
- Type confidence = Win_Rate of dominant signal type (momentum/structure/volume/reversal)
- Total confidence = (Signal_Confidence + Direction_Confidence + Type_Confidence) / 3
Adjusted size = Raw_Size × Total_Confidence × Losing_Streak_Reduction
Losing streak reduction = 0.5 if losing_streak ≥ 5, otherwise 1.0
Universal Maximum Position Calculation: Instead of hardcoded limits per instrument, the system calculates maximum position size as: Max_Contracts = Account_Size / 25000, clamped between 1 and 10 contracts. This means a $50,000 account allows up to 2 contracts, a $100,000 account allows up to 4 contracts, regardless of which futures contract is being traded. This universal approach maintains consistent risk exposure across different instruments while preventing overleveraging.
Final size is rounded to integer and bounded by the calculated maximum.
Session and Risk Management System
Timezone-Aware Session Control
The strategy implements timezone-correct session filtering. Users specify session start hour, end hour, and timezone from 12 supported zones (New York, Chicago, Los Angeles, London, Frankfurt, Moscow, Tokyo, Hong Kong, Shanghai, Singapore, Sydney, UTC). The system converts bar timestamps to the selected timezone before applying session logic.
For split sessions (e.g., Asian session 18:00-02:00), the logic correctly handles time wraparound. Weekend trading can be optionally disabled (default: disabled) to avoid low-liquidity weekend price action.
Multi-Layer Risk Controls
Daily Loss Limit: Strategy ceases all new entries when daily P&L reaches negative threshold (default $2,000). This prevents catastrophic drawdown days. Resets at timezone-corrected day boundary.
Weekly Profit Target: Strategy ceases trading when weekly profit reaches target (default $10,000). This implements the professional principle of "take the win and stop pushing luck." Resets on timezone-corrected Monday.
Maximum Daily Trades: Hard cap on entries per day (default 20) to prevent overtrading during volatile conditions when many signals may generate.
Trailing Drawdown Guard: Optional prop-firm-style trailing stop on account equity. When enabled, if equity drops below (Peak_Equity - Trailing_DD_Amount), all trading halts. This simulates the common prop firm rule where exceeding trailing drawdown results in account termination.
All limits display status in the real-time dashboard, showing "MAX LOSS HIT", "WEEKLY TARGET MET", or "ACTIVE" depending on current state.
How To Use This Strategy
Initial Setup
1. Apply the strategy to your desired futures chart (tested on 5-minute through daily timeframes)
2. The strategy will automatically detect your instrument's specifications—no manual configuration needed for different contracts
3. Configure your account size and risk parameters in the Core Settings section
4. Set your trading session hours and timezone to match your availability
5. Adjust the Stop Loss ATR multiplier based on your risk tolerance (0.8-1.2 for tighter stops, 1.5-2.5 for wider stops)
6. Select your preferred entry execution mode (recommend StopBreakout for beginners)
7. Enable adaptation (recommended) or disable for fixed-parameter operation
8. Review the strategy's Properties in the Strategy Tester settings and verify commission/slippage match your broker's actual costs
The universal futures detection means you can switch between ES, NQ, CL, GC, ZB, or any other futures contract without changing any strategy parameters—the system will automatically adapt its calculations to each instrument's unique specifications.
Dashboard Interpretation
The strategy displays a comprehensive real-time dashboard in the top-right corner showing:
Market State Section:
- Trend: Shows UPTREND/DOWNTREND/CONSOLIDATING/NEUTRAL based on ADX and DMI analysis
- ADX Value: Current trend strength (>25 = strong trend, <20 = consolidating)
- Momentum: BULL/BEAR/NEUTRAL classification with current momentum score
- Volatility: HIGH/LOW/NORMAL regime with ATR percentage of price
Volume Profile Section (Large dashboard only):
- VPT Flow: Directional bias from volume analysis
- Volume Status: HIGH/LOW/NORMAL with relative volume multiplier
Performance Section:
- Daily P&L: Current day's profit/loss with color coding
- Daily Trades: Number of completed trades today
- Weekly P&L: Current week's profit/loss
- Target %: Progress toward weekly profit target
- Stop-Out Rate: Percentage of last 20 trades (or available trades if <20) that were stopped out. Includes all stop types: initial stops, breakeven stops, trailing stops, timeout exits, and EOD flattens. Color coded with actionable guidance:
- Green (<30%): Shows "TIGHTEN" guidance. Very few stop-outs suggests stops may be too loose or exceptional market conditions. Consider reducing Stop Loss ATR multiplier.
- Orange (30-65%): Shows "OK" guidance. Healthy stop-out rate indicating appropriate stop placement for current conditions.
- Red (>65%): Shows "WIDEN" guidance. Too many premature stop-outs. Consider increasing Stop Loss ATR multiplier to give trades more room.
- Status: Overall trading status (ACTIVE/MAX LOSS HIT/WEEKLY TARGET MET/FILTERS ACTIVE)
Adaptive Engine Section:
- Min Score: Current minimum threshold for trade entry (higher = more selective)
- Risk Mult: Current position sizing multiplier (adjusts with performance)
- Bars BTW: Current minimum bars required between trades
- Drawdown: Current drawdown percentage from equity peak
- Weights: M/S/V/R showing current component weightings
Win Rates Section:
- Type: Win rates for Momentum, Structure, Volume, Reversal signal types
- Direction: Win rates for Long vs Short trades
Color coding shows green for >50% win rate, red for <50%
Session Info Section:
- Session Hours: Active trading window with timezone
- Weekend Trading: ENABLED/DISABLED status
- Session Status: ACTIVE/INACTIVE based on current time
Signal Generation and Entry
The strategy generates entries when the weighted composite score exceeds the adaptive minimum threshold (initial value configurable, typically 1.5 to 2.5). Entries display as layered triangle markers on the chart:
- Long Signal: Three green upward triangles below the entry bar
- Short Signal: Three red downward triangles above the entry bar
Triangle tooltip shows the signal score and dominant signal type (MOMENTUM/STRUCTURE/VOLUME/REVERSAL).
Position Management and Stop Optimization
Once entered, the strategy automatically manages the position through its three-stage exit system. Monitor the Stop-Out Rate metric in the dashboard to optimize your stop placement:
If Stop-Out Rate is Green (<30%): You're rarely being stopped out. This could mean:
- Your stops are too loose, allowing trades to give back too much profit on reversals
- You're in an exceptional trending market where tight stops would work better
- Action: Consider reducing your Stop Loss ATR multiplier by 0.1-0.2 to tighten stops and lock in profits more efficiently
If Stop-Out Rate is Orange (30-65%): Optimal range. Your stops are appropriately sized for the strategy's risk-reward profile and current market volatility. No adjustment needed.
If Stop-Out Rate is Red (>65%): You're being stopped out too frequently. This means:
- Your stops are too tight for current market volatility
- Trades need more room to develop before reaching profit targets
- Action: Increase your Stop Loss ATR multiplier by 0.1-0.3 to give trades more breathing room
Remember: The stop-out rate calculation includes all exit types (initial stops, breakeven stops, trailing stops, timeouts, EOD flattens). A trade that reaches breakeven and gets stopped out at entry price counts as a stop-out, even though it didn't lose money. This is intentional—it indicates the stop placement didn't allow the trade to develop into profit.
Optimization Workflow
For traders wanting to customize the strategy for their specific instrument and timeframe:
Week 1-2: Run with defaults, adaptation enabled
Allow the system to execute at least 30-50 trades (the Learning Period plus additional buffer). Monitor which session periods, signal types, and market conditions produce the best results. Observe your stop-out rate—if it's consistently red or green, plan to adjust Stop Loss ATR multiplier after the learning period. Do not adjust parameters yet—let the adaptive system establish baseline performance data.
Week 3-4: Analyze adaptation behavior and optimize stops
Review the dashboard's adaptive weights and win rates. If certain signal types consistently show <40% win rate, consider slightly reducing their base weight. If a particular entry mode produces better fill quality and win rate, switch to that mode. If you notice the minimum score threshold has climbed very high (>3.0), market conditions may not suit the strategy's logic—consider switching instruments or timeframes.
Based on your Stop-Out Rate observations:
- Consistently <30%: Reduce Stop Loss ATR multiplier by 0.2-0.3
- Consistently >65%: Increase Stop Loss ATR multiplier by 0.2-0.4
- Oscillating between zones: Leave stops at default and let volatility regime adjustments handle it
Ongoing: Fine-tune risk and execution
Adjust the following based on your risk tolerance and account type:
- Base Risk Per Trade: 0.5% for conservative, 0.75% for moderate, 1.0% for aggressive
- Stop Loss ATR Multiplier: 0.8-1.2 for tight stops (scalping), 1.5-2.5 for wide stops (swing trading)
- Bars Between Trades: Lower (5-7) for more opportunities, higher (12-20) for more selective
- Entry Mode: Experiment between modes to find best fit for current market character
- Session Hours: Narrow to specific high-performance session windows if certain hours consistently underperform
Never adjust: Do not manually modify the adaptive weights, minimum score, or risk multiplier after the system has begun learning. These parameters are self-optimizing and manual interference defeats the adaptive mechanism.
Parameter Descriptions and Optimization Guidelines
Adaptive Intelligence Group
Enable Self-Optimization (default: true): Master switch for the adaptive learning system. When enabled, component weights, minimum score, risk multiplier, and trade spacing adjust based on realized performance. Disable to run the strategy with fixed parameters (useful for comparing adaptive vs non-adaptive performance).
Learning Period (default: 15 trades): Number of most recent trades to analyze for performance calculations. Shorter values (10-12) adapt more quickly to recent conditions but may overreact to variance. Longer values (20-30) produce more stable adaptations but respond slower to regime changes. For volatile markets, use shorter periods. For stable trends, use longer periods.
Adaptation Speed (default: 0.25): Controls the magnitude of parameter adjustments per learning cycle. Lower values (0.05-0.15) make gradual, conservative changes. Higher values (0.35-0.50) make aggressive adjustments. Faster adaptation helps in rapidly changing markets but increases parameter instability. Start with default and increase only if you observe the system failing to adapt quickly enough to obvious performance patterns.
Performance Memory (default: 100 trades): Maximum number of historical trades stored for analysis. This array size does not affect learning (which uses only Learning Period trades) but provides data for future analytics features including stop-out rate tracking. Higher values consume more memory but provide richer historical dataset. Typical users should not need to modify this.
Core Settings Group
Account Size (default: $50,000): Starting capital for position sizing calculations. This should match your actual account size for accurate risk per trade. The strategy uses this value to calculate dollar risk amounts and determine maximum position size (1 contract per $25,000).
Weekly Profit Target (default: $10,000): When weekly P&L reaches this value, the strategy stops taking new trades for the remainder of the week. This implements a "quit while ahead" rule common in professional trading. Set to a realistic weekly goal—20% of account size per week ($10K on $50K) is very aggressive; 5-10% is more sustainable.
Max Daily Loss (default: $2,000): When daily P&L reaches this negative threshold, strategy stops all new entries for the day. This is your maximum acceptable daily loss. Professional traders typically set this at 2-4% of account size. A $2,000 loss on a $50,000 account = 4%.
Base Risk Per Trade % (default: 0.5%): Initial percentage of account to risk on each trade before adaptive multiplier and confidence scaling. 0.5% is conservative, 0.75% is moderate, 1.0-1.5% is aggressive. Remember that actual risk per trade = Base Risk × Adaptive Risk Multiplier × Confidence Factors, so the realized risk will vary.
Trade Filters Group
Base Minimum Signal Score (default: 1.5): Initial threshold that composite weighted score must exceed to generate a signal. Lower values (1.0-1.5) produce more trades with lower average quality. Higher values (2.0-3.0) produce fewer, higher-quality setups. This value adapts automatically when adaptive mode is enabled, but the base sets the starting point. For trending markets, lower values work well. For choppy markets, use higher values.
Base Bars Between Trades (default: 9): Minimum bars that must elapse after an entry before another signal can trigger. This prevents overtrading and allows previous trades time to develop. Lower values (3-6) suit scalping on lower timeframes. Higher values (15-30) suit swing trading on higher timeframes. This value also adapts based on drawdown and losing streaks.
Max Daily Trades (default: 20): Hard limit on total trades per day regardless of signal quality. This prevents runaway trading during extremely volatile days when many signals may generate. For 5-minute charts, 20 trades/day is reasonable. For 1-hour charts, 5-10 trades/day is more typical.
Session Group
Session Start Hour (default: 5): Hour (0-23 format) when trading is allowed to begin, in the timezone specified. For US futures trading in Chicago time, session typically starts at 5:00 or 6:00 PM (17:00 or 18:00) Sunday evening.
Session End Hour (default: 17): Hour when trading stops and no new entries are allowed. For US equity index futures, regular session ends at 4:00 PM (16:00) Central Time.
Allow Weekend Trading (default: false): Whether strategy can trade on Saturday/Sunday. Most futures have low volume on weekends; keeping this disabled is recommended unless you specifically trade Sunday evening open.
Session Timezone (default: America/Chicago): Timezone for session hour interpretation. Select your local timezone or the timezone of your instrument's primary exchange. This ensures session logic aligns with your intended trading hours.
Prop Guards Group
Trailing Drawdown Guard (default: false): Enables prop-firm-style trailing maximum drawdown. When enabled, if equity drops below (Peak Equity - Trailing DD Amount), all trading halts for the remainder of the backtest/live session. This simulates rules used by funded trader programs where exceeding trailing drawdown terminates the account.
Trailing DD Amount (default: $2,500): Dollar amount of drawdown allowed from equity peak. If your equity reaches $55,000, the trailing stop sets at $52,500. If equity then drops to $52,499, the guard triggers and trading ceases.
Execution Kernel Group
Entry Mode (default: StopBreakout):
- StopBreakout: Places stop orders above/below signal bar requiring price confirmation
- LimitPullback: Places limit orders at pullback prices seeking better fills
- MarketNextOpen: Executes immediately at market on next bar
Limit Offset (default: 0.5x ATR): For LimitPullback mode, how far below/above current price to place the limit order. Smaller values (0.3-0.5) seek minor pullbacks. Larger values (0.8-1.2) wait for deeper retracements but may miss trades.
Entry TTL (default: 6 bars, 0=off): Bars an entry order remains pending before cancelling. Shorter values (3-4) keep signals fresh. Longer values (8-12) allow more time for fills but risk executing stale signals. Set to 0 to disable TTL (orders remain active indefinitely until filled or opposite signal).
Exits Group
Stop Loss (default: 1.25x ATR): Base stop distance as a multiple of the 14-period ATR. This is your primary risk control parameter and directly impacts your stop-out rate. Lower values (0.8-1.0) create tighter stops that reduce risk per trade but may get stopped out prematurely in volatile conditions—expect stop-out rates above 65% (red zone). Higher values (1.5-2.5) give trades more room to breathe but increase risk per contract—expect stop-out rates below 30% (green zone). The system applies additional volatility regime adjustments on top of this base: ×1.2 in high volatility environments (stops widen automatically), ×0.8 in low volatility (stops tighten), ×1.0 in normal conditions. For scalping on lower timeframes, use 0.8-1.2. For swing trading on higher timeframes, use 1.5-2.5. Monitor the Stop-Out Rate metric in the dashboard and adjust this parameter to keep it in the healthy 30-65% orange zone.
Move to Breakeven at (default: 1.0R): When profit reaches this multiple of initial risk, stop moves to breakeven. 1.0R means after price moves in your favor by the distance you risked, you're protected at entry price. Lower values (0.5-0.8R) lock in breakeven faster. Higher values (1.5-2.0R) allow more room before protection.
Start Trailing at (default: 1.2R): When profit reaches this multiple, the fixed stop transitions to a dynamic trailing stop. This should be greater than the BE trigger. Values typically range 1.0-2.0R depending on how much profit you want secured before trailing activates.
Trail Offset (default: 1.0R): How far behind price the trailing stop follows. Tighter offsets (0.5-0.8R) protect profit more aggressively but may exit prematurely. Wider offsets (1.5-2.5R) allow more room for profit to run but risk giving back more on reversals.
Trail Step (default: 1.5R): How far price must move in profitable direction before the stop advances. Smaller steps (0.5-1.0R) move the stop more frequently, tightening protection continuously. Larger steps (2.0-3.0R) move the stop less often, giving trades more breathing room.
Max Bars In Trade (default: 0=off): Maximum bars allowed in a position before forced exit. This prevents trades from "going stale" during periods of no meaningful price action. For 5-minute charts, 50-100 bars (4-8 hours) is reasonable. For daily charts, 5-10 bars (1-2 weeks) is typical. Set to 0 to disable.
Flatten near Session End (default: true): Whether to automatically close all positions as session end approaches. Recommended to avoid carrying positions into off-hours with low liquidity.
Minutes before end (default: 5): How many minutes before session end to flatten. 5-15 minutes provides buffer for order execution before the session boundary.
Visual Effects Configuration Group
Dashboard Size (default: Normal): Controls information density in the dashboard. Small shows only critical metrics (excludes stop-out rate). Normal shows comprehensive data including stop-out rate. Large shows all available metrics including weights, session info, and volume analysis. Larger sizes consume more screen space but provide complete visibility.
Show Quantum Field (default: true): Displays animated grid pattern on the chart indicating market state. Disable if you prefer cleaner charts or experience performance issues on lower-end hardware.
Show Wick Pressure Lines (default: true): Draws dynamic lines from bars with extreme wicks, indicating potential support/resistance or liquidity absorption zones. Disable for simpler visualization.
Show Morphism Energy Beams (default: true): Displays directional beams showing momentum energy flow. Beams intensify during strong trends. Disable if you find this visually distracting.
Show Order Flow Clouds (default: true): Draws translucent boxes representing volume flow bullish/bearish bias. Disable for cleaner price action visibility.
Show Fractal Grid (default: true): Displays multi-timeframe support/resistance levels based on fractal price structure at 10/20/30/40/50 bar periods. Disable if you only want to see primary pivot levels.
Glow Intensity (default: 4): Controls the brightness and thickness of visual effects. Lower values (1-2) for subtle visualization. Higher values (7-10) for maximum visibility but potentially cluttered charts.
Color Theme (default: Cyber): Visual color scheme. Cyber uses cyan/magenta futuristic colors. Quantum uses aqua/purple. Matrix uses green/red terminal style. Aurora uses pastel pink/purple gradient. Choose based on personal preference and monitor calibration.
Show Watermark (default: true): Displays animated watermark at bottom of chart with creator credit and current P&L. Disable if you want completely clean charts or need screen space.
Performance Characteristics and Best Use Cases
Optimal Conditions
This strategy performs best in markets exhibiting:
Trending phases with periodic pullbacks: The combination of momentum and structure components excels when price establishes directional bias but provides retracement opportunities for entries. Markets with 60-70% trending bars and 30-40% consolidation produce the highest win rates.
Medium to high volatility: The ATR-based stop sizing and dynamic risk adjustment require sufficient price movement to generate meaningful profit relative to risk. Instruments with 2-4% daily ATR relative to price work well. Extremely low volatility (<1% daily ATR) generates too many scratch trades.
Clear volume patterns: The VPT volume component adds significant edge when volume expansions align with directional moves. Instruments and timeframes where volume data reflects actual transaction flow (versus tick volume proxies) perform better.
Regular session structure: Futures markets with defined opening and closing hours, consistent liquidity throughout the session, and clear overnight/day session separation allow the session controls and time-based failsafes to function optimally.
Sufficient liquidity for stop execution: The stop breakout entry mode requires that stop orders can fill without significant slippage. Highly liquid contracts work better than illiquid instruments where stop orders may face adverse fills.
Suboptimal Conditions
The strategy may struggle with:
Extreme chop with no directional persistence: When ADX remains below 15 for extended periods and price oscillates rapidly without establishing trends, the momentum component generates conflicting signals. Win rate typically drops below 40% in these conditions, triggering the adaptive system to increase minimum score thresholds until conditions improve. Stop-out rates may also spike into the red zone.
Gap-heavy instruments: Markets with frequent overnight gaps disrupt the continuous price assumptions underlying ATR stops and EMA-based structure analysis. Gaps can also cause stop orders to fill at prices far from intended levels, distorting stop-out rate metrics.
Very low timeframes with excessive noise: On 1-minute or tick charts, the signal components react to micro-structure noise rather than meaningful price swings. The strategy works best on 5-minute through daily timeframes where price movements reflect actual order flow shifts.
Extended low-volatility compression: During historically low volatility periods, profit targets become difficult to reach before mean-reversion occurs. The trail offset, even when set to minimum, may be too wide for the compressed price environment. Stop-out rates may drop to green zone indicating stops should be tightened.
Parabolic moves or climactic exhaustion: Vertical price advances or selloffs where price moves multiple ATRs in single bars can trigger momentum signals at exhaustion points. The structure and reversal components attempt to filter these, but extreme moves may override normal logic.
The adaptive learning system naturally reduces signal frequency and position sizing during unfavorable conditions. If you observe multiple consecutive days with zero trades and "FILTERS ACTIVE" status, this indicates the strategy has self-adjusted to avoid poor conditions rather than forcing trades.
Instrument Recommendations
Emini Index Futures (ES, MES, NQ, MNQ, YM, RTY): Excellent fit. High liquidity, clear volatility patterns, strong volume signals, defined session structure. These instruments have been extensively tested and the universal detection handles all contract specifications automatically.
Micro Index Futures (MES, MNQ, M2K, MYM): Excellent fit for smaller accounts. Same market characteristics as the standard eminis but with reduced contract sizes allowing proper risk management on accounts below $50,000.
Energy Futures (CL, NG, RB, HO): Good to mixed fit. Crude oil (CL) works well due to strong trends and reasonable volatility. Natural gas (NG) can be extremely volatile—consider reducing Base Risk to 0.3-0.4% and increasing Stop Loss ATR multiplier to 1.8-2.2 for NG. The strategy automatically detects the $10/tick value for CL and adjusts position sizing accordingly.
Metal Futures (GC, SI, HG, PL): Good fit. Gold (GC) and silver (SI) exhibit clear trending behavior and work well with the momentum/structure components. The strategy automatically handles the different point values ($100/point for gold, $5,000/point for silver).
Agricultural Futures (ZC, ZS, ZW, ZL): Good fit. Grain futures often trend strongly during seasonal periods. The strategy handles the unique tick sizes (1/4 cent increments) and point values ($50/point for corn/wheat, $60/point for soybeans) automatically.
Treasury Futures (ZB, ZN, ZF, ZT): Good fit for trending rates environments. The strategy automatically handles the fractional tick sizing (32nds for ZB/ZN, halves of 32nds for ZF/ZT) through the universal detection system.
Currency Futures (6E, 6J, 6B, 6A, 6C): Good fit. Major currency pairs exhibit smooth trending behavior. The strategy automatically detects point values which vary significantly ($12.50/tick for 6E, $12.50/tick for 6J, $6.25/tick for 6B).
Cryptocurrency Futures (BTC, ETH, MBT, MET): Mixed fit. These markets have extreme volatility requiring parameter adjustment. Increase Base Risk to 0.8-1.2% and Stop Loss ATR multiplier to 2.0-3.0 to account for wider stop distances. Enable 24-hour trading and weekend trading as these markets have no traditional sessions.
The universal futures compatibility means you can apply this strategy to any of these markets without code modification—simply open the chart of your desired contract and the strategy will automatically configure itself to that instrument's specifications.
Important Disclaimers and Realistic Expectations
This is a sophisticated trading strategy that combines multiple analytical methods within an adaptive framework designed for active traders who will monitor performance and market conditions. It is not a "set and forget" fully automated system, nor should it be treated as a guaranteed profit generator.
Backtesting Realism and Limitations
The strategy includes realistic trading costs and execution assumptions:
- Commission: $0.62 per contract per side (accurate for many retail futures brokers)
- Slippage: 1 tick per entry and exit (conservative estimate for liquid futures)
- Position sizing: Realistic risk percentages and maximum contract limits based on account size
- No repainting: All calculations use confirmed bar data only—signals do not change retroactively
However, backtesting cannot fully capture live trading reality:
- Order fill delays: In live trading, stop and limit orders may not fill instantly at the exact tick shown in backtest
- Volatile periods: During high volatility or low liquidity (news events, rollover days, pre-holidays), slippage may exceed the 1-tick assumption significantly
- Gap risk: The backtest assumes stops fill at stop price, but gaps can cause fills far beyond intended exit levels
- Psychological factors: Seeing actual capital at risk creates emotional pressures not present in backtesting, potentially leading to premature manual intervention
The strategy's backtest results should be viewed as best-case scenarios. Real trading will typically produce 10-30% lower returns than backtest due to the above factors.
Risk Warnings
All trading involves substantial risk of loss. The adaptive learning system can improve parameter selection over time, but it cannot predict future price movements or guarantee profitable performance. Past wins do not ensure future wins.
Losing streaks are inevitable. Even with a 60% win rate, you will encounter sequences of 5, 6, or more consecutive losses due to normal probability distributions. The strategy includes losing streak detection and automatic risk reduction, but you must have sufficient capital to survive these drawdowns.
Market regime changes can invalidate learned patterns. If the strategy learns from 50 trades during a trending regime, then the market shifts to a ranging regime, the adapted parameters may initially be misaligned with the new environment. The system will re-adapt, but this transition period may produce suboptimal results.
Prop firm traders: understand your specific rules. Every prop firm has different rules regarding maximum drawdown, daily loss limits, consistency requirements, and prohibited trading behaviors. While this strategy includes common prop guardrails, you must verify it complies with your specific firm's rules and adjust parameters accordingly.
Never risk capital you cannot afford to lose. This strategy can produce substantial drawdowns, especially during learning periods or market regime shifts. Only trade with speculative capital that, if lost, would not impact your financial stability.
Recommended Usage
Paper trade first: Run the strategy on a simulated account for at least 50 trades or 1 month before committing real capital. Observe how the adaptive system behaves, identify any patterns in losing trades, monitor your stop-out rate trends, and verify your understanding of the entry/exit mechanics.
Start with minimum position sizing: When transitioning to live trading, reduce the Base Risk parameter to 0.3-0.4% initially (vs 0.5-1.0% in testing) to reduce early impact while the system learns your live broker's execution characteristics.
Monitor daily, but do not micromanage: Check the dashboard daily to ensure the strategy is operating normally and risk controls have not triggered unexpectedly. Pay special attention to the Stop-Out Rate metric—if it remains in the red or green zones for multiple days, adjust your Stop Loss ATR multiplier accordingly. However, resist the urge to manually adjust adaptive weights or disable trades based on short-term performance. Allow the adaptive system at least 30 trades to establish patterns before making manual changes.
Combine with other analysis: While this strategy can operate standalone, professional traders typically use systematic strategies as one component of a broader approach. Consider using the strategy for trade execution while applying your own higher-timeframe analysis or fundamental view for trade filtering or sizing adjustments.
Keep a trading journal: Document each week's results, note market conditions (trending vs ranging, high vs low volatility), record stop-out rates and any Stop Loss ATR adjustments you made, and document any manual interventions. Over time, this journal will help you identify conditions where the strategy excels versus struggles, allowing you to selectively enable or disable trading during certain environments.
Technical Implementation Notes
All calculations execute on closed bars only (`calc_on_every_tick=false`) ensuring that signals and values do not repaint. Once a bar closes and a signal generates, that signal is permanent in the history.
The strategy uses fixed-quantity position sizing (`default_qty_type=strategy.fixed, default_qty_value=1`) with the actual contract quantity determined by the position sizing function and passed to the entry commands. This approach provides maximum control over risk allocation.
Order management uses Pine Script's native `strategy.entry()` and `strategy.exit()` functions with appropriate parameters for stops, limits, and trailing stops. All orders include explicit from_entry references to ensure they apply to the correct position.
The adaptive learning arrays (trade_returns, trade_directions, trade_types, trade_hours, trade_was_stopped) are maintained as circular buffers capped at PERFORMANCE_MEMORY size (default 100 trades). When a new trade closes, its data is added to the beginning of the array using `array.unshift()`, and the oldest trade is removed using `array.pop()` if capacity is exceeded. The stop-out tracking system analyzes the trade_was_stopped array to calculate the rolling percentage displayed in the dashboard.
Dashboard rendering occurs only on the confirmed bar (`barstate.isconfirmed`) to minimize computational overhead. The table is pre-created with sufficient rows for the selected dashboard size and cells are populated with current values each update.
Visual effects (fractal grid, wick pressure, morphism beams, order flow clouds, quantum field) recalculate on each bar for real-time chart updates. These are computationally intensive—if you experience chart lag, disable these visual components. The core strategy logic continues to function identically regardless of visual settings.
Timezone conversions use Pine Script's built-in timezone parameter on the `hour()`, `minute()`, and `dayofweek()` functions. This ensures session logic and daily/weekly resets occur at correct boundaries regardless of the chart's default timezone or the server's timezone.
The universal futures detection queries `syminfo.mintick` and `syminfo.pointvalue` on each strategy initialization to obtain the current instrument's specifications. These values remain constant throughout the strategy's execution on a given chart but automatically update when the strategy is applied to a different instrument.
The strategy has been tested on TradingView across timeframes from 5-minute through daily and across multiple futures instrument types including equity indices, energy, metals, agriculture, treasuries, and currencies. It functions identically on all instruments due to the percentage-based risk model and ATR-relative calculations which adapt automatically to price scale and volatility, combined with the universal futures detection system that handles contract-specific specifications.
Chanlun ZSLX pen czsc Channel Chan Theory🏆 Chanzhongshuochan (CZSC) ZSLX Recursive Version Indicator - Flagship Edition
Background
A Decade of Craftsmanship, a Major Upgrade
This Chanzhongshuochan (Chan Theory) indicator has undergone nearly 10 years of meticulous refinement and continuous optimization. Since its initial design in 2015, it has been validated through real trading practice. Now, it makes its debut on TradingView with a brand-new upgrade, featuring more comprehensive functions and superior performance.
It truly implements all core theories from the original Chan Theory texts, including a complete system covering candlestick containment processing, fractal identification, pen-segment analysis, pivot zone theory, trading signal (buy/sell point) positioning, and divergence analysis. It serves as a professional and all-encompassing technical analysis tool for Chan Theory enthusiasts in the industry.
🎯 Chinese Translation for User Indicator Interface:
● 顶背离: Top Divergence
● 底背离: Bottom Divergence
● 顶背驰: Top Divergence Including Trend Structure
● 底背驰: Bottom Divergence Including Trend Structure
● 趋势: Trend
● 盘整: Consolidation
● 扩张: Expansion
● 大级别盘整: Higher-Timeframe Consolidation
● 一买: First Buy Signal
● 二买: Second Buy Signal
● 类二买:Quasi-Second Buy Signal
● 三买: Third Buy Signal
● 一卖: First Sell Signal
● 二卖: Second Sell Signal
● 类二卖:Quasi-Second Sell Signal
● 三卖: Third Sell Signal
📦 Parameter Settings
● Number of Candlesticks for Calculation: Up to 5,000 candlesticks. Even free TradingView users are limited to this data volume.
● Pen Detail Parameters: Adjustable options include "Old Pen", "New Pen", "Pen Based on Secondary High/Low", "Pen Based on Absolute High/Low", and "Strict Pen". Select via numerical options corresponding to each type.
● MA (Moving Average) and Bollinger Bands Display Parameters: Check the box to enable display; uncheck to hide (configure as needed).
● Pivot Zone Price & Pen-Segment Price Display: Check the box to enable display; uncheck to hide (configure as needed).
● MACD Parameters: Adjustable according to personal needs (set the periods for fast EMA, slow EMA, and signal line).
● MA Parameters: Default values can be manually adjusted.
● Pen Divergence, Segment Divergence, & Pen-Segment Divergence Display: Check the box to enable display; uncheck to hide (configure as needed).
● Pen-Segment Divergence Alert: Disabled by default. Enable by checking the box. To set up alerts:
a. Go to TradingView’s "Alerts" interface.
b. Under "Condition", select this indicator.
c. Choose "Any alert() function call".
d. Set the notification type, then create the alert to receive notifications.
🔥 Integration of Other Common Indicators & Rationale
● ✅ Moving Average (MA): Chan Theory inherently uses MA overlay for analysis. Adding MA here allows users to analyze price trends from multiple perspectives, making it an essential inclusion.
● ✅ Bollinger Bands: Combining Bollinger Bands (a price channel tool) with Chan Theory provides additional perspectives for trend analysis and improves accuracy, hence its integration.
● ✅ MACD: A 不可或缺 (indispensable) indicator for analyzing trend strength in Chan Theory. It is integrated to facilitate seamless analysis.
● ✅ Rationale for Integrating Shared Core Code between Two Scripts:
The scripts Chanlun ZSLX pen czsc Channel Chan Theory and Chanlun FBFD pen czsc Channel Chan Theory share some underlying code. Here’s why integration is necessary:
○ The core logics of the original Chan Theory — including candlestick containment processing, MACD divergence analysis, candlestick objects, and pen-related calculations — are identical in both scripts.
○ However, significant differences exist in the top-level logics for segment division, trend recursion, display effects, and functions.
○ Additionally, TradingView imposes limits on script code size, making it impossible to fully integrate the two versions’ line-drawing features into one.
○ Therefore, this indicator reuses shared code components, including:
■ The Start_kxian() function (returns candlestick objects),
■ The Start_bi() function (returns pen objects),
■ The showKxianzsfunc() function (draws candlestick-based pivot zones),
■ MACD divergence judgment code.
🎯 Technical Principles
🔥 1. Comprehensive Coverage of Original Chan Theory Functions
● ✅ Real-Time Candlestick Containment Processing – Intelligent Recognition of Containment Relationships
○ In uptrends: Select the higher high and higher low values (prioritize higher extremes).
○ In downtrends: Select the lower high and lower low values (prioritize lower extremes).
● ✅ Accurate Fractal Marking – Automatic Identification of Top/Bottom Fractals
○ When the "Old/New Pen" parameter is set to 2, the high/low points of each top/bottom fractal are plotted.
○ Top Fractal: Among three consecutive candlesticks, the middle candlestick has a higher high and a higher low than the adjacent two.
○ Bottom Fractal: Among three consecutive candlesticks, the middle candlestick has a lower low and a lower high than the adjacent two.
● ✅ Multi-Dimensional Pen-Segment Analysis – Complete System for Pens & Segments
○ Pens:
■ Old Pen: Strictly follows the traditional Chan Theory definition of "pen".
■ New Pen: Adheres to the more flexible "new pen" definition from the original Chan Theory.
■ Fractal Pen: Forms a pen directly from top/bottom fractals (responds to price changes; many peers misclassify this as a "sub-timeframe pen").
○ Segments: This version adopts a recursive logic. While some single pens are treated as segments (differing from pure segment division), most segment-drawing results align with standard methods — the core difference lies in the line-drawing logic.
● ✅ Multi-Level Pivot Zone Integration – Candlestick-, Pen-, & Segment-Based Pivot Zones
○ Candlestick Pivot Zone: The smallest-level pivot zone in Chan Theory.
○ Pen Pivot Zone: Follows the original Chan Theory for division — the zone’s high is the lowest high of overlapping pens; the zone’s low is the highest low of overlapping pens.
○ Segment Pivot Zone: Follows the original Chan Theory for division — the zone’s high is the lowest high of overlapping segments; the zone’s low is the highest low of overlapping segments.
● ✅ Intelligent Trading Signals – Accurate Positioning of Three Types of Buy/Sell Points
○ Type 1 Buy/Sell Signal
■ Principle: Based on Chan Theory’s "trend divergence" — momentum weakens when a trend structure forms.
■ Analysis Method: Identify bottom divergence (for buys) or top divergence (for sells) in the final pivot zone of a trend structure.
■ Application: For reference only. Comprehensive analysis requires combining momentum decay across multiple timeframes.
○ Type 2 Buy/Sell Signal
■ Principle: The first pullback low (for buys) or rebound high (for sells) after a Type 1 signal concludes.
■ Analysis Method: After a Type 1 structure forms, prices may occasionally break previous lows/highs.
■ Application: For reference only. Comprehensive analysis requires combining momentum decay across multiple timeframes.
○ Type 3 Buy/Sell Signal
■ Principle: A standard Type 3 buy signal occurs when prices break above the first pivot zone after a Type 1 buy, then pull back to test the zone. For ease of monitoring, all "breakout + pullback" patterns are marked as Type 3 signals here.
■ Identification Method: Beginners are advised to trade standard Type 3 structures (post-Type 1 signals), though such structures are relatively rare.
■ Application: For reference only. Comprehensive analysis requires combining momentum decay across multiple timeframes.
● ✅ Divergence Alert – Exclusive Divergence Algorithm
○ Principle: Uses MACD momentum statistics from the original Chan Theory to distinguish between "pen-structure divergence" and "segment-structure divergence". Specific values are labeled on the chart to differentiate MACD momentum for pens vs. segments. More complex statistical features will be added in future updates. For reference on the current timeframe only — multi-timeframe momentum analysis is still required.
● ✅ Trend Structure Recursion – Exclusive Trend Recursion Function
○ Principle: This is a "same-timeframe decomposition" version of trend types. Trends end as close to absolute highs/lows as possible. Some single pens may be treated as segments, resulting in more natural-looking trend structures.
⚙️ Indicator Features
🌟 1. Diverse Pen-Segment Algorithm Engines
● 🎨 Three Pen Algorithms: "Traditional Old Pen", "New Pen", "Top/Bottom Fractal Pen".
● 🔧 Extensive Parameter Adjustments: Fine-grained control over "secondary high/low pens", "fractal range judgment", etc.
● 📊 Dual Recursive Division: Recursion starting from pens + higher-timeframe recursion.
● 🎯 Customizable Parameters: Adapts to different Chan Theory interpretations and trading styles.
🌟 2. Multi-Level Intelligent Integration System
● 📈 Synchronized Calculation & Display: Linked analysis of pens, segments, and advanced recursive segments.
● 🏗️ Exclusive Recursion Algorithm: Accurate identification of advanced recursive segments.
● 🎪 Multi-Level Pivot Zone System: Full coverage of three pivot zone levels (candlestick, pen, segment).
● 📊 Holistic Market Analysis: Provides comprehensive insights into real-time market dynamics.
🎨 3. Professional Visual Customization
● 🌈 Custom Color Schemes: Perfectly matches personal chart styles.
● 💰 Price Label Display: Marks key prices for pens, segments, and pivot zones.
● 📐 Professional Auxiliary Tools: Practical features like MA and Bollinger Bands.
● 🎁 Included MACD: A supporting indicator for the sub-chart.
⏰ 4. Seamless Candlestick Replay Support
● 🔄 Historical Data Review: Fully compatible with TradingView’s replay function.
● 📚 Powerful Market Research Tool: Enhances the ability to analyze historical price trends.
● 🧠 Improved Decision-Making: Deepens market insights and judgment.
📦 Feature & Interface Showcase by Product Version
Advanced Recursive Version ⭐ Exclusive Algorithm
Suitable for: Advanced Chan Theory users seeking precise trend analysis.
Exclusive Features:
● 🚀 Rare Algorithm: A pure recursive version (most competitors only reach segment-level analysis, which is their limit).
● 🎯 Optimized High/Low Points: Trend endpoints are accurately positioned at absolute highs/lows.
● 🏆 Natural Trend Structures: More natural and rational distribution of high/low points.
● 💎 Complete Chan Theory Elements: Covers all core components of Chan Theory.
● ⚡ Rich Pen Details: Extremely detailed processing of pen structures.
User Feedback: The preferred version among many senior Chan Theory users, with excellent real-trading performance.
Screenshot:
---
🎊 Experience Now & Start Your Professional Chan Theory Analysis Journey!
Pre-Purchase Notes
Chanzhongshuochan (Chan Theory) is relatively complex. While this software strives to implement all functions from the original texts, minor imperfections or unaddressed details may exist — these will be gradually improved in future updates.
● Users with concerns are advised to test the indicator for a few days first. Purchase only if it meets your needs; otherwise, treat the test as a trial.
● Feedback on issues or bugs is welcome. The developer will update, modify, and optimize the indicator in their spare time.
Key Function Screenshots
1. Multi-Level Recursion
2. Candlestick Containment Processing
3. Area Statistics + Pivot Zone High/Low Price Display
4. Multi-Level Consolidation Divergence
5. Overlaid Practical Moving Averages
6. Fractal Pens
7. Candlestick-Based Pivot Zones
8. Dozens of Adjustable Parameters
9. Optional Alert Functions (More to be Added in Future Updates)
10. Trend Structure Markers
🏆 缠中说禅ZSLX 递归版指标 - 旗舰版
背景
十年匠心,重磅升级
这套缠中说禅指标历经近10年的精心打磨与持续优化,从2015年初版设计至今,已经过实战验证。现全新升级登陆TradingView,功能更加完善,性能更加卓越。
真正实现了缠论原文中的所有核心理论,包括K线包含、分型识别、笔段分析、中枢理论、买卖点定位、背离背驰等完整体系,为缠论爱好者提供业界专业、全面的技术分析工具。
📦参数设置
- 计算K线数量:最多计算5000根,免费tradingview用户也只能这么多数据
- 笔细节参数:新旧笔、次高低点笔、最高低点笔、严格笔 可以调整可按标的数字选
- 显示均线和布林线参数:根据需要设置打钩就是显示,取消打钩就是隐藏
- 显示中枢价格和笔段价格:根据需要设置打钩就是显示,取消打钩就是隐藏
- macd参数:可以根据自己需要调整参数 快 慢 信号线周期设置
- 均线参数:默认参数可以自己手动调整
- 显示笔背离、段背离、笔段背驰:根据需要设置打钩就是显示,取消打钩就是隐藏
- 笔段背离背驰报警:默认关闭可以设置打钩开启,然后在tradingview的警报界面,条件里选择指标,设置:任何alert()函数调用,再设置通知类型,然后创建报警就可以收到报警
🔥整合其他常用指标和原因:
✅均线:因为缠论里是有使用均线叠加分析,这种更方便用户从不同视角分析走势,所以必须增加
✅布林线:布林线通道,结合缠论,也可以更多的视角分析走势,提高准确度,所以也增加了
✅macd:这个是缠论分析理论里必不可少的分析走势力度的指标,所以也必须整合进来方便分析
✅Chanlun ZSLX pen czsc Channel Chan Theory这个脚本和Chanlun FBFD pen czsc Channel Chan Theory这个脚本有些底层的源码是一样的必须整合原因:
因为缠论原文底层的K线包含、macd背离背驰、K线对象和笔部分都是一样的,但是顶层的线段和走势递归两种划分原理和显示效果和功能是有很大区别,并且tradingview社区的源码量有限制,导致也无法两个版本划线完全整合成一个,所以,这个脚本里的Start_kxian函数返回的kxian对象、 Start_bi函数返回的bi 对象 、showKxianzsfunc画K线中枢部分的源码、macd背离背驰判断部分代码,会有一样的整合部分源码
🎯 技术原理
🔥 1. 全方位缠论原文功能覆盖
● ✅ 实时K线包含处理 - 智能识别包含关系
○ - 上涨K线中取高点高值、低点高值,高高取高
- 下跌K线中取高点低值、低点低值,低低取低
● ✅ 精准分型标记 - 顶底分型自动识别
○ - 通过新旧笔参数设置2,会画出每个顶底分型高低点
○ - 顶分型:三根k线中,中间K线高点高于两侧K线,低点也高于两侧
- 底分型:三根k线中,中间K线低点低于两侧K线,高点也低于两侧
● ✅ 多维笔段分析 - 笔、线段完整体系
○ - 老笔:传统缠论严格笔定义,符合原文
- 新笔:传统缠论新笔定义,符合原文宽松笔条件
- 分型笔:顶底分型就成笔,价格反应比较敏锐(同行很多人把本周期分型笔标成次级别)
○ - 线段:这个版本采用递归思路,有的地方一笔处理成段,大部分地方跟纯分段一样,但是划线原理不同
● ✅ 多级中枢联立 - K线中枢、笔中枢、线段中枢
○ - K线中枢:最小级别的缠论中枢
- 笔中枢:采用原文的笔中枢划分区间,高点取重叠部分的最低点,低点取重叠部分最高点
- 线段中枢:采用原文的线段中枢划分区间,高点取线段重叠部分的最低点,低点取线段重叠部分最高点
● ✅ 智能买卖点 - 三类买卖点精准定位
○ 1类买卖点
- 原理:基于缠论趋势背驰原理,形成趋势结构时候,力度减弱
- 分析方法:通过判断趋势结构中最后中枢形成底背驰
- 应用:只是参考,具体分析需要多周期力度衰减结合判断
2类买卖点
- 原理:基于1类买卖点结束后,第一个回调低点
- 分析方法:在形成一类结构后,有时候也会破低点
- 应用:只是参考,具体分析需要多周期力度衰减结合判断
3类买卖点
- 原理:标准的三买是在1买形成后,突破第一个中枢的第一个回踩,这边为了方便看盘,统一突破回踩就标三买
- 识别方法:新手建议选择一类买点后的标准三买结构操作,但是可能这种结构比较少
- 应用:只是参考,具体分析需要多周期力度衰减结合判断
● ✅ 背离背驰预警 - 独家背离背驰算法
○ - 原理:采用缠论原文的macd力度统计,区分笔结构的背离背驰和段结构的背离背驰,并且在图形上标上具体数值,区分笔和段的macd力度,后期这个还要继续升级更复杂的统计,仅做本周期的参考,具体也是要多周期力度分析
● ✅ 走势结构递归 - 独家走势递归功能
- 原理:走势类型版本,这个是同级别分解版本,走势尽量结束在最高最低点,有的地方可能一笔成段,· 走势更为自然
⚙️ 指标特点
🌟1. 多样化笔段算法引擎
○ 🎨 三大笔算法: "传统旧笔"、"新笔"、"顶底分型笔"
○ 🔧 海量参数调节: 次高低笔、分型区间判断等精细化控制
○ 📊 双重递归划分: 笔开始递归 + 大级别递归
○ 🎯 个性化参数调整: 满足不同缠友的理解需求与交易风格
🌟 2. 多级别智能联立系统
○ 📈 同步计算显示: 笔、线段、递归高级段联动分析
○ 🏗️ 独家递归算法: 高级递归段精准识别
○ 🎪 多级中枢体系: 三重中枢级别完整覆盖
○ 📊 全景市场分析: 提供全面的市场动态洞察
🎨 3. 专业视觉定制
○ 🌈 自定义配色方案 - 完美匹配个人图表风格
○ 💰 价格标识显示 - 笔、段、中枢关键价位标注
○ 📐 专业辅助工具 - 均线、布林线等实用功能
○ 🎁 附带MACD - 配套附图指标
⏰ 4. 完美K线回放支持
○ 🔄 历史数据回顾 - 完美支持TradingView回放功能
○ 📚 市场研究利器 - 提升历史走势分析能力
○ 🧠 决策能力增强 - 深化市场洞察与判断水平
📦 产品版本功能界面展示
高级递归版 ⭐ 独家算法
适合:高阶缠友,追求极致走势分析
独家特色:
● 🚀 全网罕见算法: 纯递归版本,其他家最多只能设计到分段级别就是极限了
● 🎯 优化高低点: 走势结束点精准定位最高最低点
● 🏆 自然走势结构: 高低点分布更加自然合理
● 💎 完整缠论元素: 涵盖所有缠论核心要素
● ⚡ 超丰富笔细节: 笔的处理细节极其丰富
🌟 客户反馈: 众多资深缠友首选版本,实战效果卓越
快照
---
🎊 立即体验,开启专业缠论分析之旅!
售前说明:缠中说禅理论,相对比较复杂,软件尽量实现原文的功能,但是也难免有些瑕疵地方,无法处理到位,这边后期会陆续完善,介意的客户可以先试用几天,觉得合适再买,不合适就当测试下,欢迎大家反馈问题和bug,掌柜有空会后期更新修改和优化
1.多级别递归
2.K线包含
3.面积统计+中枢高低点价格显示
4.多级别盘整背离背驰
5.叠加实用均线
6.分型笔
7。k线中枢
8.几十个可选参数调整
9,可选的一些报警功能,后期陆续完善,更丰富
10.走势结构标志
SMC ToolBox [WinWorld]👋 INTRODUCTION
SMC ToolBox indicator is not just a simple indicator, but rather a collection of SMC-related algorithms, that our teams has found to make the most profound impact on determination process of the most high-quality liquidity zones and points of interests ( further – POIs ), hence the name of the indicator – Tool Box (and it also sounds cool :) .
From candle patterns to complex orderflow detection algorithm, ToolBox indicator will help any trader with search for useful tools, solving the needs from confirming position entry levels to trend-following and mean reversion opportunities.
❓ WHY DID WE BUILD THIS?
This indicator was initially built for our team's internal use for the sole purpose of gathering all actively used non-structure-related algorithms* in one place, so we could have only the tools that are truly needed at hand at any point of time. After we showed this tool to our trading partners, they were surprised about how light, fast and useful ToolBox was and they advised us on sharing this with our community and, after giving it a proper thought, we decided to follow their advice.
Funnily enough , after researching TradingView's open-source script library, we haven't found even one instance of even remotely alike indicators, so it fair to say that we are one of the first people to release this kind of SMC-related indicator bundles on the market and we strongly that TradingView's community will find this tool of use.
🤷♂️ WHY SHOULD YOU CARE AT ALL?
Frankly speaking, we are not the first people to build our own algorithms of such popular indicators like Equal Highs and Lows (EQHL), Previous Day High Low (PDHL), Orderflow (OF) and etc., but we are definitely one of the first teams to implement these indicators with the help of algorithms, that are actually used by the most professional traders on YouTube and other social media trading influencers. Simply taking trades from our SCOBs, OFs, EQHLs and etc. won't print you millions overnight, but what these algos will do is help you with being aware of is potentially laying ahead of you with a very clean probability.
Why does it matter? It simple: better market awareness gives you an edge over other trades, which use old algorithms, which are clearly outdated, so beating such traders in the long run is just a game of time for you, so good algorithms do matter. Each indicator inside ToolBox is there to help you develop this market awareness and forge your edge bit by bit.
Now let's talk about what is inside the ToolBox.
🔍 OVERVIEW
At the moment of publishing ToolBox contains 8 indicators, so say "Hello" to:
Price Border Bands (further – PBB) ;
Ordeflow (further – OF) ;
Equal Highs & Lows (further – EQHL) ;
Previous Day High & Low ( further – PDHL) ;
Single Candle Order Block (further – SCOB) ;
Institutional Funding Candle (further – IFC) ;
Engulfing Candle (further – EC) ;
Inside Bars (further – IB) .
Some of them you may know, some of them you may not, so let's review each of them one by one.
📍 INDICATOR: Price Border Bands (PBB)
Price Border Bands indicator is a simple yet useful algorithm, based on Triangular Moving Average (TMA), which helps determine extreme price spikes, which on average act as meaningful mean reversion opportunities. It also is a good an effective "verifier" of POIs and zones of interest (further – ZOI) .
We advise on using this indicator this way:
Look for price going beyond upper or lower band of PBB;
Look for price reaching POI or ZOI;
Start searching for your entry point.
The most common sign of potential price reversal, which PBB searches for, is intense price spike, which signals about "liquidity clearing" or, in simple terms, manipulation .
Manipulation of the price inside the POI or price being "stopped" by POI is a screaming sign of the potentional following reversal. See the example of such situation on the screenshot below:
Additionally we need to talk about trend filter inside PBB, which colours the bars on the chart under certain conditions. If bars on the chart are being coloured in gray – this is your sign to stop trading on this asset? because there is risk to catch an uncomfortably big price spike, which might turn the '+' of your position's PnL in to '-'. See the example of PBB highlighting bar's of risky price zone in gray colour on the screenshot below:
In order to continue trading you need to wait for bars to stop being coloured in gray OR confirm the fact that price made Change of Character (ChoCh) in reverse to the previous direction of price, which was marked as risky by PBB.
And last but not least: if you see POI being reach by price inside the bands of PBB, then consider this POI weak and avoid trading it. See the example of weak POI inside PBB bands on the screenshot below:
📍 INDICATOR: Orderflow (OF)
Orderflow indicator is an algorithm, which detects Sell-to-Buy (furthert – STB) or Buy-to-Sell (further – BTS) manipulations, using the algorithm of impulse & correction price movement detection, taken from one of our previously built indicators – Impulse Correction SCOB Mapper (ICSM) .
Let's explain the terms from above:
Impulse – series of bars, each bar of which consecutively updated previous bar's high and then last candle broke previous bar's low ;
Correction – series of bars, each bar of which consecutively updated previous bar's low and then last candle broke previous bar's high ;
STB – a type of price manipulation, which can be described as a correction of price inside global upward movemnt;
BTS – a type of price manipulation, which can be describd as a impulse of price inside global downward movement.
Unlike traditional order blocks, which are often narrower and more selective, Orderflow zones cover a wider price range and present a higher probability of mitigation. This makes them more reliable for entries in ovaerage in comparison to classic orderblocks.
Let's review examples of bullish and bearish orderflows on the screenshots below:
Bullish orderflows (STBs) (blue boxes with "OF" text inside)
Bearish orderflows (BTSs) (orange boxes with "OF" text inside)
The usage of ZOIs, detected by OF algorithm, is pretty straightforward: take trades against the ordeflow block, that price has reached. Even though we don't recommend relying on Orderflow blocks as sole producers of signals, you can use them as such in way, that can be described like this:
Place stop-loss (SL) beyond the furthest border of OF block (bottom of the bullish OF or top of the bearish OF), that price has reached;
Aim for >2:1 RR ratio and place your take-profit (TP) accordingly.
You can see the example setups of OF blocks as signal producers on the screenshots below:
Examples of LONG trades, taken from price reaching bullish OF block.
Examples of SHORT trades, taken from price reaching bearish OF block.
Summarising, Orderflow can be described as a tool that helps determine the STB and BTS price manipulations, which are great price ZOIs and can be used both as confirmation tools for your exisiting signals and sole signal producers, in which case such they needed to be handled extra mindfully and preferrably bonded with other tools for additional confirmation. We personally recommend using Ordeflow as confirmation tool, because ZOIs, detected by Orderflow, are usually the price ranges, around which traders tend to place their stop-losses, which only gives more strength to these zones for supporting the price and helps traders with "trading from support/resistance" strategies gain additional edge.
📍 INDICATOR: Equal Highs & Lows (EQHL)
EQHL indicator is an algorithm, which scans the extremums of impulse and correction movements, detected by our ICSM indicator , and marks ones which are roughly or equaly placed on the same price levels. Equal highs (further – EQH) and equal lows (further – EQL) are local liquidity pools, where stop orders and resting orders cluster; price often gravitates to these zones for liquidity “top-ups,” after which a reaction or continuation to the next liquidity source may occur. Basically, EQHL algorithm highlights clusters of equal extremes as navigational anchors for “collect → react → confirm” scenarios.
Talking about usage, we advise to not take swept or reached EQHLs as entries by themselves. Evaluate them alongside HTF structure, Inducement (IDM), orderblocks (OB), orderflow (OF), candle pattern context (e.g., IFC/EC) on the LTF and etc. Intended usage scenario of this algorithm is something like this:
Price reaches EQH/EQL;
Price hangs around the reached EQH/EQL;
Another tool (for example, OF or OB) signals about price reversals from the level of reached EQH/EQL;
Trader starts looking for an entry.
See the examples of EQHLs, which algorithms maps on the chart, on the screenshots below:
Equal Lows (EQLs)
Equal Highs (EQHs)
📍 INDICATOR: Previous Day High & Low (PDHL)
PDHL indicator is an algorithm, princples of work of which can be derived from its name: algorithm tracks previous day's high and low and displays it on the chart.
Previous day's high and low are fundamental POIs in any financial market, which are traded not only by SMC traders, but by many other traders, especially by traders, which consider these POIs are one of the most crucial, because they usually highly liquidity-rich and can signal about wondeful reversal opportunities.
We expect traders to use PDHL algorithm as confirmation tool when trading by mean reversion strategies. Usage of PDHL as signal source is advised against, but traders are free to experiment nevertheless.
PDHL algorithm shows two types of PDHLs on the chart: active PDHL (solid line) and swept PDHL (dashed line) . You can the examples of PDHLs, detected by our algorithm, on the screenshot below:
📍 INDICATOR: Single Candle Order Block (SCOB)
SCOB indicator is an algorithm, which marks a very specific POIS, which are based on of the most simple yet highly profound SMC and candle pattern principles and are usually a good alternative for classic orderblocks.
Principles of SCOB detection are very simple:
Price sweeps previous candle's extremum (high/low). So called "liquidity sweep" ;
Immediately after step 1 price forms a fair value gap (FVG).
You can see basic examples of bearish and bullish SCOBs on the screenshot below:
As a matter of fact, SCOB can be used both as a confirmation tool and source of signals. However! To be a source of signals, SCOB is most suitable to be used while trading on lower timeframe (LTF), while trading on a higher timeframe (HTF) on average requires to look at SCOB as a POI rather than as independent source of signals. That being said, we would like additionally to point out, that due to the nature of SCOB being an orderblock, this tool by its nature is best suitable as confirmation tool and we expect traders to use it as such, but either way this indicator is quite multifunctional and can be used by each trader for a more specific purposes.
SCOBs, which are detected by our algorithm, are painted on the chart either as coloured candles (SCOBs without inside bars) or coloured boxes (SCOBs with inside bars) . You can see examples of SCOBs, which were detected by our SCOB algorithm, on the screenshot below:
📍 INDICATOR: Institutional Funding Candle (IFC)
IFC is a candle, which is a more strict version of SCOB. Our algorithms detects an IFC, if SCOB satisfies these conditions:
SCOB candle has large shadow (more than 50% of candle's body);
SCOB candle has large range ( | high - low | is more than a certain value, which is base on ATR).
That's basically it! Being simple as that, IFC represents itself as a high-trust SCOB, which on average has larger chance of reversing price when IFC candle is reached by it and our practice shows that it is indeed the case. IFC candles are usually go hand in hand with large price and volume spikes, which are believed to be caused by large institutional players, who trading eager to catch retail trader's stop orders, which they usually place around POIs like IFC and SCOB.
We expect traders to use IFC as a tool for entry confirmation bias, especially when considering IFC from HTF.
You can see IFC, which our algoritms detects on the chart, on the screenshot below:
📍 INDICATOR: Engulfing Candle (EC)
An Engulfing Candle is a candle, which occurs when the current candle’s body engulfs the prior candle’s body, showing a short-term shift in demand/supply balance. In SMC context, it is most useful around POIs/liquidity as a contextual confirmation element. The indicator marks bullish and bearish EC without implying a “must reverse” outcome – it’s a focus cue, not a promise.
As with any other alike tool, this algorithm should not be used as sole source of signals, but rather as a confirmation tool. ECs near support/resistance zones or POIs are typically more impactufl than those inside choppy consolidations. Structural and LTF price impulse confirmation usually enhances existing position bias in a positive way.
You can see examples of engulfing candles on the screenshots below:
Bullish engulfing candles
Bearish engulfing candles
📍 INDICATOR: Inside Bars (IB)
Inside Bars are bars, which are contained inside the range of high and low prices of the bars preceding them. This algorithm was designed to showcase periods of potential price consolidation/volatylity compression and quite often precedes price movement towards closest liquidity POIs and ZOIs. When price finally breaks out of its previous range, it usually provides good opportunities for entering trades using breakout strategies (especially ones, that are based on SMC principles) .
You can see examples of IBs, which are detected by our algorithm on the chart, on the screenshot below:
That was a long list of features, now let's talk about settings now.
🔔 WHAT ABOUT ALERTS?
At the moment of publishing this indicator includes alerts for all algorithms, which are included inside, except for Inside Bars (IB) algorithm .
⚙️ SETTINGS
At the moment of publishing most of the settings in this indicator are about styling for indicator's visuals, because by design most of the included algorithms (excluding PBB) don't rely on inputs of any technical kind. Let's review them.
ToolBox | General Styling
Text Size – (Tiny, Small, Normal, Large) – defines text size of indicator's visuals, which use text-based visuals.
Price Border Bands | Main Settings
Show Price Border Bands – toggles on/off the display of PBB;
Half Length – defines amount of bars, used for calculation of the PBB's TMA;
Price Source – defines price source for PBB's TMA;
ATR Multiplier – affects the width of PBB's bands;
ATR Period – affects the amount of bars for ATR calculation.
Orderflow (OF) | Settings
Bullish OF – toggles on/off the display & colour of bullish OF;
Bearish OF – toggles on/off the display & colour of bearish OF;
Show border – toggles on/off the display of OF blocks' border.
Single Candle Order Block (SCOB) | Settings
Show SCOB – toggles on/off the display of SCOB;
Bullish – toggles on/off the colour of bullish SCOB;
Bearish – toggles on/off the colour of bearish SCOB.
Equal High/Lows (EQHL) | Settings
Show EQH/EQL – toggles on/off the display of PDH/PDL;
EQH – toggles on/off the colour of EQH;
EQL – toggles on/off the colour of EQL.
Institutional Funding Candle (IFC) | Settings
Show IFC – toggles on/off the display of IFC;
Bullish – toggles on/off the colour of bullish IFC;
Bearish – toggles on/off the colour of bearish IFC.
Previous Day High & Low (PDHL) | Settings
Show PDH/PDL – toggles on/off the display of PDH/PDL;
Show PDH/PDL – toggles on/off the display of the past history of swept PDH/PDL;
Show previous day divider – toggles on/off the display of dashed gray line, which separates new day from previous one;
Bullish – toggles on/off the colour of bullish IFC;
Bearish – toggles on/off the colour of bearish IFC.
Engulfing Candle (EC) | Settings
Show engulfing candles – toggles on/off the display of EC;
Bullish – toggles on/off the colour of bullish EC;
Bearish – toggles on/off the colour of bearish EC.
Inside Bars (IB) | Settings
Show inside bars – toggles on/off the display of IB;
Bullish – toggles on/off the colour of bullish IB;
Bearish – toggles on/off the colour of bearish IB.
Alerts | POI
Alert Frequency – (Once Per Bar, Once Per Bar Close) – defines alert frequency of the indicator's alert for all POIs;
* all other buttons from this group of settings toggle alerts on/off.
PBB;
OF;
SCOB;
EQH;
EQL;
IFC;
PDH;
PDL;
EC.
🏁 AFTERWORD
SMC ToolBox indicator is designed to be the ultimate swiss knife, which might bring you quantifiable results when trying to crack the market's secret of where the liquidity is placed. This indicator doesn't produce any particular signals not it gives any financial advice, but it helps you deepen understanding about potential existing liquidity zones and price points by employing principles of SMC algorithms, which are most commonly used by retail traders on a daily basis.
You can view this indicator as a Christmas candy box: you pick only the candles (indicators) you need and want. We expect any trader to use this indicator by exactly same way: you should take onlt the things you need to enhance your strategy, not worrying about what to do with other indicators, fi they don't suit you.
Lastly, we would like to share our team's recommendations (they are optional, of course) on how to use certain POIs from ToolBox:
Use PBB as a filter for validating POis. Pay close attention to the rule "don't trade POIs, which are located inside the bands of PBB" (described above in "INDICATOR: PBB") ;
Use Orderflow to find short-term and mid-term trading opportunitions for trend-following strategies, using OF blocks as resistance in bearish trend and support in bullish trend;
Use EQHL and PDHL indicators when trading by mean-reversion strategies on intraday timeframes. These indicators will be especially of use to forex, stock and crypto traders;
Use SCOB and IFC indicators when trading by mean-reversion strategy to find short-term reversal opportunities;
Use ECs and IBs as confirmation/denial tools for your entry ideas. We recommend avoiding trading If price is currently going inside HTF's IB range.
We have no doubts that SMC ToolBox indicator will be of use to any trader, who employs and desire to employ SMC principles in his strategy. We will be waiting for your feedback, meanwhile you can ask your questions in the comments :)
Sincerely,
WinWorld team.
PriceActionLibrary "PriceAction"
Hi all!
This library will help you to plot the market structure and liquidity. By now, the only part in the price action section is liquidity, but I plan to add more later on. The market structure will be split into two parts, 'Internal' and 'Swing' with separate pivot lengths. For these two trends it will show you:
• Break of structure (BOS)
• Change of character (CHoCH/CHoCH+) (mandatory)
• Equal high/low (EQH/EQL)
It's inspired by "Smart Money Concepts (SMC) " by LuxAlgo.
This library is now the same code as the code in my library 'MarketStructure', but it has evolved into a more price action oriented library than just a market structure library. This is more accurate and I will continue working on this library to keep it growing.
This code does not provide any examples, but you can look at my indicators 'Market structure' () and 'Order blocks' (), where I use the 'MarketStructure' library (which is the same code).
Market structure
Both of these market structures can be enabled/disabled by setting them to 'na'. The pivots lengths can be configured separately. The pivots found will be the 'base' of and will show you when price breaks it. When that happens a break of structure or a change of character will be created. The latest 5 pivots found within the current trends will be kept to take action on. They are cleared on a change of character, so nothing (break of structures or change of characters) can happen on pivots before a trend change. The internal market structure is shown with dashed lines and swing market structure is shown with solid lines.
Labels for a change of character can have either the text 'CHoCH' or 'CHoCH+'. A Change of Character plus is formed when price fails to form a higher high or a lower low before reversing. Note that a pivot that is created after the change of character might have a higher high or a lower low, thus not making the break a 'CHoCH+'. This is not changed after the pivot is found but is kept as is.
A break of structure is removed if an earlier pivot within the same trend is broken, i.e. another break of structure (with a longer distance) is created. Like in the images below, the first pivot (in the first image) is removed when an earlier pivot's higher price within the same trend is broken (the second image):
[image [https://www.tradingview.com/x/PRP6YtPA/
Equal high/lows have a configurable color setting and can be configured to be extended to the right. Equal high/lows are only possible if it's not been broken by price. A factor (percentage of width) of the Average True Length (of length 14) that the pivot must be within to to be considered an Equal high/low. Equal highs/lows can be of 2 pivots or more.
You are able to show the pivots that are used. "HH" (higher high), "HL" (higher low), "LH" (lower high), "LL" (lower low) and "H"/"L" (for pivots (high/low) when the trend has changed) are the labels used. There are also labels for break of structures ('BOS') and change of characters ('CHoCH' or 'CHoCH+'). The size of these texts is set in the 'FontSize' setting.
When programming I focused on simplicity and ease of read. I did not focus on performance, I will do so if it's a problem (haven't noticed it is one yet).
You can set alerts for when a change of character, break of structure or an equal high/low (new or an addition to a previously found) happens. The alerts that are fired are on 'once_per_bar_close' to avoid repainting. This has the drawback to alert you when the bar closes.
Price action
The indicator will create lines and zones for spotted liquidity. It will draw a line (with dotted style) at the price level that was liquidated, but it will also draw a zone from that level to the bar that broke the pivot high or low price. If that zone is large the liquidation is big and might be significant. This can be disabled in the settings. You can also change the confirmation candles (that does not close above or below the pivot level) needed after a liquidation and how many pivots back to look at.
The lines and boxes drawn will look like this if the color is orange:
Hope this is of help!
Will draw out the market structure for the disired pivot length.
Liqudity(liquidity)
Will draw liquidity.
Parameters:
liquidity (Liquidity) : The 'PriceAction.Liquidity' object.
Pivot(structure)
Sets the pivots in the structure.
Parameters:
structure (Structure)
PivotLabels(structure)
Draws labels for the pivots found.
Parameters:
structure (Structure)
EqualHighOrLow(structure)
Draws the boxes for equal highs/lows. Also creates labels for the pivots included.
Parameters:
structure (Structure)
BreakOfStructure(structure)
Will create lines when a break of strycture occures.
Parameters:
structure (Structure)
Returns: A boolean that represents if a break of structure was found or not.
ChangeOfCharacter(structure)
Will create lines when a change of character occures. This line will have a label with "CHoCH" or "CHoCH+".
Parameters:
structure (Structure)
Returns: A boolean that represents if a change of character was found or not.
VisualizeCurrent(structure)
Will create a box with a background for between the latest high and low pivots. This can be used as the current trading range (if the pivots broke strucure somehow).
Parameters:
structure (Structure)
StructureBreak
Holds drawings for a structure break.
Fields:
Line (series line) : The line object.
Label (series label) : The label object.
Pivot
Holds all the values for a found pivot.
Fields:
Price (series float) : The price of the pivot.
BarIndex (series int) : The bar_index where the pivot occured.
Type (series int) : The type of the pivot (-1 = low, 1 = high).
Time (series int) : The time where the pivot occured.
BreakOfStructureBroken (series bool) : Sets to true if a break of structure has happened.
LiquidityBroken (series bool) : Sets to true if a liquidity of the price level has happened.
ChangeOfCharacterBroken (series bool) : Sets to true if a change of character has happened.
Structure
Holds all the values for the market structure.
Fields:
LeftLength (series int) : Define the left length of the pivots used.
RightLength (series int) : Define the right length of the pivots used.
Type (series Type) : Set the type of the market structure. Two types can be used, 'internal' and 'swing' (0 = internal, 1 = swing).
Trend (series int) : This will be set internally and can be -1 = downtrend, 1 = uptrend.
EqualPivotsFactor (series float) : Set how the limits are for an equal pivot. This is a factor of the Average True Length (ATR) of length 14. If a low pivot is considered to be equal if it doesn't break the low pivot (is at a lower value) and is inside the previous low pivot + this limit.
ExtendEqualPivotsZones (series bool) : Set to true if you want the equal pivots zones to be extended.
ExtendEqualPivotsStyle (series string) : Set the style of equal pivot zones.
ExtendEqualPivotsColor (series color) : Set the color of equal pivot zones.
EqualHighs (array) : Holds the boxes for zones that contains equal highs.
EqualLows (array) : Holds the boxes for zones that contains equal lows.
BreakOfStructures (array) : Holds all the break of structures within the trend (before a change of character).
Pivots (array) : All the pivots in the current trend, added with the latest first, this is cleared when the trend changes.
FontSize (series int) : Holds the size of the font displayed.
AlertChangeOfCharacter (series bool) : Holds true or false if a change of character should be alerted or not.
AlertBreakOfStructure (series bool) : Holds true or false if a break of structure should be alerted or not.
AlerEqualPivots (series bool) : Holds true or false if equal highs/lows should be alerted or not.
Liquidity
Holds all the values for liquidity.
Fields:
LiquidityPivotsHigh (array) : All high pivots for liquidity.
LiquidityPivotsLow (array) : All low pivots for liquidity.
LiquidityConfirmationBars (series int) : The number of bars to confirm that a liquidity is valid.
LiquidityPivotsLookback (series int) : A number of pivots to look back for.
FontSize (series int) : Holds the size of the font displayed.
PriceAction
Holds all the values for the general price action and the market structures.
Fields:
Liquidity (Liquidity)
Swing (Structure) : Placeholder for all objects used for the swing market structure.
Internal (Structure) : Placeholder for all objects used for the internal market structure.
ICT Multi-Session Hi/L/EQ
Indicator Overview: The "ICT Multi-Session Hi/L/EQ" indicator is a versatile tool designed for traders utilizing Inner Circle Trader (ICT) strategies, enabling the visualization of key price levels—High (H), Low (L), Equilibrium (EQ, the midpoint between high and low), and Optimal Trade Entry (OTE) levels at 61.8%, 70%, and 79% of the session range—across up to 6 customizable market sessions on a single chart.
Core Functionality: It dynamically tracks and plots session-specific highs, lows, and EQ, updating in real-time as price action evolves, providing traders with immediate insights into potential support, resistance, and balance zones during defined periods like the Asian, London, or New York sessions. This multi-session capability allows for comprehensive market analysis without the need for multiple indicators.
Unique OTE Auto Detection: A standout feature is the automatic detection and directional calculation of OTE levels. When a session forms a new high, OTE levels are recalculated downward from the high to the low (bearish bias), highlighting potential short entry zones. Conversely, a new low triggers upward OTE levels from the low to the high (bullish bias), signaling long opportunities. This auto-detection adapts to market momentum without manual input, making it highly unique for ICT traders seeking efficient entry signals based on range retracements. No other indicator combines this session-based auto-directionality with OTE percentages tailored for ICT methodologies.
Left-Side Trimming Innovation: Another innovative aspect is the left-side trimming option, which allows users to limit the historical extension of lines to a user-defined number of bars (e.g., the last 8 bars), reducing chart clutter and focusing attention on recent price action. This feature is particularly unique as it addresses a common issue in multi-session indicators where full historical lines can overwhelm the chart, making it ideal for scalpers or day traders who prioritize clarity.
Without trimming the left side:
And when left side trimming is enabled:
Multi-Session Customization: Support for up to 6 independent sessions, each with individual time ranges (HHMM-HHMM format), timezones, and enable/disable toggles, offers unparalleled flexibility. Traders can configure sessions for specific market phases (e.g., Asia: 2000-0000 UTC) and customize colors, line styles (solid, dashed, dotted), and label properties separately, ensuring a personalized setup for global trading environments.
Auto-Deletion at Market Close: Levels can be automatically deleted at the session's calculated market close (17:00 NY timestamp), keeping the chart clean for the next session or day, a useful feature for avoiding accumulation of outdated levels.
Label and Visual Controls: Users can toggle labels on/off, adjust text color, background color, transparency, and size (tiny, small, normal, large), with options to stick labels to the right for better visibility. This level of customization ensures the indicator integrates seamlessly with any chart style.
No External Dependencies: All calculations are performed using built-in Pine Script functions on the chart's price data, making it self-contained and reliable without needing external libraries or data sources.
Professional and Compliant Design: Developed to comply with TradingView House Rules, this indicator is original in its combination of multi-session plotting, directional OTE auto-detection, and left-side trimming, providing traders with a robust tool for ICT-based analysis.
How It Works
Session Setup: Define session times and timezones in settings; the script tracks high/low from session start.
Level Calculation: High/low update on every bar; EQ is the midpoint. OTE levels recalculate directionally upon new extremes.
Drawing Mechanism: Lines extend with user-defined padding; trimming cuts left side for cleanliness.
Update Logic: OTE direction shifts based on new high/low detection, with levels refreshed accordingly.
Deletion: Auto-deletes at session end if enabled, resetting for new sessions.
Uniqueness and Innovation
Session OTE Auto Detection: Automatically adjusts OTE direction based on new highs/lows, a feature not commonly available in other indicators, enabling hands-free bias identification.
Left-Side Trimming: Unique clutter-reduction tool that trims historical lines, improving chart readability—a rare capability in session-based indicators.
Multi-Session Support: Handles 6 sessions independently, with per-session OTE, making it a one-stop tool for global market analysis.
Directional OTE: Adapts to market bias, offering dynamic entry zones tailored to ICT strategies.
Full Customization: Extensive controls for visuals and behavior, ensuring adaptability to individual trading styles.
User Guide: How to Use the "ICT Multi-Session Hi/L/EQ" Indicator
This guide provides a comprehensive, step-by-step explanation of how to use the "ICT Multi-Session Hi/L/EQ" indicator on TradingView. The indicator is designed to help Inner Circle Trader (ICT) enthusiasts plot key price levels—High (H), Low (L), Equilibrium (EQ, the midpoint), and Optimal Trade Entry (OTE) levels at 61.8%, 70%, and 79% of the session range—across up to 6 customizable sessions. It also includes a Candle Open line for midnight or custom times. I'll break it down by settings groups, explaining each option, its purpose, how to tweak it, and tips for optimal use. All settings are accessible via the indicator's settings panel (cog icon next to the indicator name on your chart).
General Settings
These control global behaviors that apply to all sessions and levels. They allow you to customize the overall appearance and functionality of the indicator on your chart.
Line Padding (Bars Beyond Current): This integer input (default: 2, minimum: 0) extends the plotted lines beyond the current bar by the specified number of bars.
How to Use/Tweak: Increase this value (e.g., to 5) for longer forward projections of levels, useful for anticipating future price action. Decrease to 0 for no extension. It's ideal for traders who like to see levels projected ahead in volatile markets.
Tip: On lower timeframes (e.g., 5M), higher padding (4-6) helps visualize potential targets; on higher timeframes (1H), keep it low to avoid clutter.
Label Padding (Bars from Line End): An integer (default: 3, minimum: 0) that positions labels away from the end of the lines by the specified bars.
How to Use/Tweak: Adjust to move labels further right (higher value) or closer to the line end (lower value). This prevents label overlap with price action or other indicators.
Tip: If your chart has many labels, set to 5+ for better readability; use 1-2 for minimalistic setups.
Enable Left-Side Trimming: A boolean toggle (default: true) to trim lines from the left, limiting their historical extension.
How to Use/Tweak: Turn on to reduce chart clutter by showing only recent bars of the lines; turn off for full historical view. Pairs with "Left Trim Bars" for fine-tuning.
Tip: Enable for clean charts during live trading; disable for backtesting to see long-term patterns.
Left Trim Bars: An integer (default: 8, minimum: 1) specifying how many bars back from the current bar to trim lines when left trimming is enabled.
How to Use/Tweak: Set higher (e.g., 20) for more historical visibility while trimmed; lower (e.g., 4) for ultra-clean charts focusing on immediate action.
Tip: Use 8-12 for intraday trading on 15M charts; adjust based on timeframe to balance context and clarity.
Stick Labels to Right of Current Bar: A boolean toggle (default: true) to position labels at the right end of the lines.
How to Use/Tweak: Enable for labels to "stick" right, keeping them visible as the chart updates; disable for labels at the current bar position.
Tip: Keep enabled for real-time trading to avoid labels shifting left; disable for static analysis.
Delete Previous Session Lines/Labels on Market Close: A boolean toggle (default: true) to automatically delete session lines and labels at the calculated market close (17:00 NY time).
How to Use/Tweak: Enable to keep the chart clean by clearing old sessions; disable to retain historical levels for reference.
Tip: Enable for live trading to focus on active sessions; disable for educational reviews or backtesting.
Session 1 to 6 Settings
Each session has identical options, allowing independent configuration. I'll describe Session 1; replicate for others by changing the number (e.g., Session 2 uses "Session 2 Name", etc.).
Session Name: String input (default: "Asia" for Session 1) to label the session (e.g., "Asia" or "London").
How to Use/Tweak: Enter a descriptive name like "NY Open" for clarity in labels (e.g., "NY Open High").
Tip: Use short names to avoid long labels; this appears in all session labels for easy identification.
Session Time (HHMM-HHMM): Session input (default: "2000-0000" for Session 1) to define the start and end time.
How to Use/Tweak: Set the time range (e.g., "0930-1600" for NY session). Ensure start < end in 24-hour format.
Tip: Use for custom sessions like "London Kill Zone" (0800-1100); validate with the timezone setting.
Session Timezone: String selection (default: "America/New_York") from a list of options.
How to Use/Tweak: Choose the timezone matching your session (e.g., "Europe/London" for UK times).
Tip: Align with session name for accuracy; "Etc/UTC" for universal times.
Enable Session Drawings: Boolean toggle (default: true for Session 1, false for others) to activate the session's lines and labels.
How to Use/Tweak: Enable to show the session; disable to hide it without removing settings.
Tip: Enable one session at a time for focused analysis; use for multi-session overlays.
Enable EQ Line/Label: Boolean toggle (default: true) to show the EQ line and label.
How to Use/Tweak: Enable for midpoint plotting; disable to hide EQ while keeping high/low.
Tip: Useful for ICT fair value gaps; toggle off if focusing on extremes only.
Enable Labels: Boolean toggle (default: true) to show labels for high, low, EQ, and OTE levels.
How to Use/Tweak: Enable for annotated levels; disable for lines-only view.
Tip: Disable on crowded charts; customize label size for better readability.
Enable OTE Levels: Boolean toggle (default: false) to activate OTE levels (61.8%, 70%, 79%).
How to Use/Tweak: Enable for OTE plotting; disable to hide while keeping high/low/EQ.
Tip: Toggle on for entry zone identification; adjust colors for visual distinction.
Line Color: Color input (default varies by session, e.g., blue for Session 1) for lines.
How to Use/Tweak: Choose a color to differentiate sessions (e.g., green for bullish).
Tip: Use contrasting colors for multiple sessions; match your chart theme.
Line Style: String selection (default: "Dashed") from "Solid", "Dashed", "Dotted".
How to Use/Tweak: Select style for line appearance (e.g., dotted for OTE).
Tip: Use dashed for OTE to distinguish from solid high/low lines.
Label Text Color: Color input (default: white) for label text.
How to Use/Tweak: Set to contrast with background (e.g., black on white charts).
Tip: Use bright colors for visibility; match line color for cohesion.
Label Background Color: Color input (default: black) for label background.
How to Use/Tweak: Choose a semi-transparent background for readability.
Tip: Set to chart background color for subtle labels.
Label Transparency (0=opaque, 100=transparent): Integer input (default: 70) for label opacity.
How to Use/Tweak: Lower for solid labels (e.g., 0); higher for see-through (e.g., 90).
Tip: Use 50-80 for balance; 100 hides background entirely.
Label Text Size: String selection (default: "Small") from "Tiny", "Small", "Normal", "Large".
How to Use/Tweak: Choose size for label visibility (e.g., "Large" for emphasis).
Tip: "Small" for crowded charts; "Large" for main levels.
OTE 61.8% Color: Color input (default: purple) for 61.8% OTE line.
How to Use/Tweak: Customize to highlight the 61.8% level (e.g., gold for key entry).
Tip: Use distinct colors for each OTE level to differentiate (e.g., purple, orange, teal).
OTE 70% Color: Color input (default: orange) for 70% OTE line.
How to Use/Tweak: Set to a secondary color for mid-range OTE.
Tip: Coordinate with overall theme; use faded shades for less prominence.
OTE 79% Color: Color input (default: teal) for 79% OTE line.
How to Use/Tweak: Choose for the deepest OTE level (e.g., red for aggressive entries).
Tip: Make it stand out if 79% is your preferred entry zone.
Candle Open Settings
This section adds a custom open line (e.g., midnight open) with similar customization.
Use Time 1: Boolean toggle (default: true) to enable the first time setting.
How to Use/Tweak: Enable for the open line; disable to hide.
Tip: Use for midnight open in ICT setups; toggle off if not needed.
Name: String input (default: "Midnight Open") for the open line label.
How to Use/Tweak: Change to "Daily Open" or similar for context.
Tip: Keep short for clean labels.
Start Time: String input (default: "0000") for open range start.
How to Use/Tweak: Set in HHMM format (e.g., "0000" for midnight).
Tip: Ensure valid (0000-2359); pair with end time for narrow ranges.
End Time: String input (default: "0001") for open range end.
How to Use/Tweak: Set slightly after start (e.g., "0001") for precise open capture.
Tip: Use for quick ranges; start < end always.
Color: Color input (default: teal) for the open line.
How to Use/Tweak: Customize to distinguish from session lines.
Tip: Use gray for subtle open lines.
Timezone: String selection (default: "America/New_York") for the open line.
How to Use/Tweak: Choose matching your chart or session.
Tip: "Etc/UTC" for universal opens.
Enable Line/Label: Boolean toggle (default: true) for the open line/label.
How to Use/Tweak: Enable to show; disable to hide.
Tip: Use for daily opens in ICT; toggle off for session-only focus.
Enable Label: Boolean toggle (default: true) for the open label.
How to Use/Tweak: Enable for named label; disable for line-only.
Tip: Disable if labels clutter the chart.
Auto Delete at 18:00 NY: Boolean toggle (default: true) to delete at 18:00 NY.
How to Use/Tweak: Enable for cleanup; disable to retain.
Tip: Align with new day start; useful for resetting.
Stick Label to Right: Boolean toggle (default: true) for label positioning.
How to Use/Tweak: Enable for right-side labels; disable for current bar.
Tip: Keep enabled for visibility as chart updates.
Enable Left-Side Trimming: Boolean toggle (default: true) for open line trimming.
How to Use/Tweak: Enable to trim historical open line; disable for full view.
Tip: Similar to session trimming; use for clean charts.
Left Trim Bars: Integer input (default: 8) for open line trim bars.
How to Use/Tweak: Set the number of bars back to show when trimming.
Tip: Lower for more focus; higher for context.
Line Padding (Bars Beyond Current): Integer input (default: 2) for open line extension.
How to Use/Tweak: Increase for forward projection; decrease for no extension.
Tip: Match general padding for consistency.
Label Padding (Bars from Line End): Integer input (default: 3) for open label position.
How to Use/Tweak: Adjust to move label away from line end.
Tip: Higher for spaced labels; lower for compactness.
Line Style: String selection (default: "Solid") for open line style.
How to Use/Tweak: Choose "Dashed" or "Dotted" for distinction.
Tip: Use dotted for subtle opens.
Label Text Color: Color input (default: white) for open label text.
How to Use/Tweak: Set to contrast with background.
Tip: Black for light charts.
Label Background Color: Color input (default: black) for open label background.
How to Use/Tweak: Customize for visibility.
Tip: Semi-transparent for blend.
Label Transparency: Integer input (default: 70) for open label opacity.
How to Use/Tweak: 0 for opaque; 100 for transparent.
Tip: 50-80 for balance.
Label Text Size: String selection (default: "Small") for open label size.
How to Use/Tweak: "Large" for emphasis; "Tiny" for minimalism.
Tip: "Normal" for standard use.
Markov Chain [3D] | FractalystWhat exactly is a Markov Chain?
This indicator uses a Markov Chain model to analyze, quantify, and visualize the transitions between market regimes (Bull, Bear, Neutral) on your chart. It dynamically detects these regimes in real-time, calculates transition probabilities, and displays them as animated 3D spheres and arrows, giving traders intuitive insight into current and future market conditions.
How does a Markov Chain work, and how should I read this spheres-and-arrows diagram?
Think of three weather modes: Sunny, Rainy, Cloudy.
Each sphere is one mode. The loop on a sphere means “stay the same next step” (e.g., Sunny again tomorrow).
The arrows leaving a sphere show where things usually go next if they change (e.g., Sunny moving to Cloudy).
Some paths matter more than others. A more prominent loop means the current mode tends to persist. A more prominent outgoing arrow means a change to that destination is the usual next step.
Direction isn’t symmetric: moving Sunny→Cloudy can behave differently than Cloudy→Sunny.
Now relabel the spheres to markets: Bull, Bear, Neutral.
Spheres: market regimes (uptrend, downtrend, range).
Self‑loop: tendency for the current regime to continue on the next bar.
Arrows: the most common next regime if a switch happens.
How to read: Start at the sphere that matches current bar state. If the loop stands out, expect continuation. If one outgoing path stands out, that switch is the typical next step. Opposite directions can differ (Bear→Neutral doesn’t have to match Neutral→Bear).
What states and transitions are shown?
The three market states visualized are:
Bullish (Bull): Upward or strong-market regime.
Bearish (Bear): Downward or weak-market regime.
Neutral: Sideways or range-bound regime.
Bidirectional animated arrows and probability labels show how likely the market is to move from one regime to another (e.g., Bull → Bear or Neutral → Bull).
How does the regime detection system work?
You can use either built-in price returns (based on adaptive Z-score normalization) or supply three custom indicators (such as volume, oscillators, etc.).
Values are statistically normalized (Z-scored) over a configurable lookback period.
The normalized outputs are classified into Bull, Bear, or Neutral zones.
If using three indicators, their regime signals are averaged and smoothed for robustness.
How are transition probabilities calculated?
On every confirmed bar, the algorithm tracks the sequence of detected market states, then builds a rolling window of transitions.
The code maintains a transition count matrix for all regime pairs (e.g., Bull → Bear).
Transition probabilities are extracted for each possible state change using Laplace smoothing for numerical stability, and frequently updated in real-time.
What is unique about the visualization?
3D animated spheres represent each regime and change visually when active.
Animated, bidirectional arrows reveal transition probabilities and allow you to see both dominant and less likely regime flows.
Particles (moving dots) animate along the arrows, enhancing the perception of regime flow direction and speed.
All elements dynamically update with each new price bar, providing a live market map in an intuitive, engaging format.
Can I use custom indicators for regime classification?
Yes! Enable the "Custom Indicators" switch and select any three chart series as inputs. These will be normalized and combined (each with equal weight), broadening the regime classification beyond just price-based movement.
What does the “Lookback Period” control?
Lookback Period (default: 100) sets how much historical data builds the probability matrix. Shorter periods adapt faster to regime changes but may be noisier. Longer periods are more stable but slower to adapt.
How is this different from a Hidden Markov Model (HMM)?
It sets the window for both regime detection and probability calculations. Lower values make the system more reactive, but potentially noisier. Higher values smooth estimates and make the system more robust.
How is this Markov Chain different from a Hidden Markov Model (HMM)?
Markov Chain (as here): All market regimes (Bull, Bear, Neutral) are directly observable on the chart. The transition matrix is built from actual detected regimes, keeping the model simple and interpretable.
Hidden Markov Model: The actual regimes are unobservable ("hidden") and must be inferred from market output or indicator "emissions" using statistical learning algorithms. HMMs are more complex, can capture more subtle structure, but are harder to visualize and require additional machine learning steps for training.
A standard Markov Chain models transitions between observable states using a simple transition matrix, while a Hidden Markov Model assumes the true states are hidden (latent) and must be inferred from observable “emissions” like price or volume data. In practical terms, a Markov Chain is transparent and easier to implement and interpret; an HMM is more expressive but requires statistical inference to estimate hidden states from data.
Markov Chain: states are observable; you directly count or estimate transition probabilities between visible states. This makes it simpler, faster, and easier to validate and tune.
HMM: states are hidden; you only observe emissions generated by those latent states. Learning involves machine learning/statistical algorithms (commonly Baum–Welch/EM for training and Viterbi for decoding) to infer both the transition dynamics and the most likely hidden state sequence from data.
How does the indicator avoid “repainting” or look-ahead bias?
All regime changes and matrix updates happen only on confirmed (closed) bars, so no future data is leaked, ensuring reliable real-time operation.
Are there practical tuning tips?
Tune the Lookback Period for your asset/timeframe: shorter for fast markets, longer for stability.
Use custom indicators if your asset has unique regime drivers.
Watch for rapid changes in transition probabilities as early warning of a possible regime shift.
Who is this indicator for?
Quants and quantitative researchers exploring probabilistic market modeling, especially those interested in regime-switching dynamics and Markov models.
Programmers and system developers who need a probabilistic regime filter for systematic and algorithmic backtesting:
The Markov Chain indicator is ideally suited for programmatic integration via its bias output (1 = Bull, 0 = Neutral, -1 = Bear).
Although the visualization is engaging, the core output is designed for automated, rules-based workflows—not for discretionary/manual trading decisions.
Developers can connect the indicator’s output directly to their Pine Script logic (using input.source()), allowing rapid and robust backtesting of regime-based strategies.
It acts as a plug-and-play regime filter: simply plug the bias output into your entry/exit logic, and you have a scientifically robust, probabilistically-derived signal for filtering, timing, position sizing, or risk regimes.
The MC's output is intentionally "trinary" (1/0/-1), focusing on clear regime states for unambiguous decision-making in code. If you require nuanced, multi-probability or soft-label state vectors, consider expanding the indicator or stacking it with a probability-weighted logic layer in your scripting.
Because it avoids subjectivity, this approach is optimal for systematic quants, algo developers building backtested, repeatable strategies based on probabilistic regime analysis.
What's the mathematical foundation behind this?
The mathematical foundation behind this Markov Chain indicator—and probabilistic regime detection in finance—draws from two principal models: the (standard) Markov Chain and the Hidden Markov Model (HMM).
How to use this indicator programmatically?
The Markov Chain indicator automatically exports a bias value (+1 for Bullish, -1 for Bearish, 0 for Neutral) as a plot visible in the Data Window. This allows you to integrate its regime signal into your own scripts and strategies for backtesting, automation, or live trading.
Step-by-Step Integration with Pine Script (input.source)
Add the Markov Chain indicator to your chart.
This must be done first, since your custom script will "pull" the bias signal from the indicator's plot.
In your strategy, create an input using input.source()
Example:
//@version=5
strategy("MC Bias Strategy Example")
mcBias = input.source(close, "MC Bias Source")
After saving, go to your script’s settings. For the “MC Bias Source” input, select the plot/output of the Markov Chain indicator (typically its bias plot).
Use the bias in your trading logic
Example (long only on Bull, flat otherwise):
if mcBias == 1
strategy.entry("Long", strategy.long)
else
strategy.close("Long")
For more advanced workflows, combine mcBias with additional filters or trailing stops.
How does this work behind-the-scenes?
TradingView’s input.source() lets you use any plot from another indicator as a real-time, “live” data feed in your own script (source).
The selected bias signal is available to your Pine code as a variable, enabling logical decisions based on regime (trend-following, mean-reversion, etc.).
This enables powerful strategy modularity : decouple regime detection from entry/exit logic, allowing fast experimentation without rewriting core signal code.
Integrating 45+ Indicators with Your Markov Chain — How & Why
The Enhanced Custom Indicators Export script exports a massive suite of over 45 technical indicators—ranging from classic momentum (RSI, MACD, Stochastic, etc.) to trend, volume, volatility, and oscillator tools—all pre-calculated, centered/scaled, and available as plots.
// Enhanced Custom Indicators Export - 45 Technical Indicators
// Comprehensive technical analysis suite for advanced market regime detection
//@version=6
indicator('Enhanced Custom Indicators Export | Fractalyst', shorttitle='Enhanced CI Export', overlay=false, scale=scale.right, max_labels_count=500, max_lines_count=500)
// |----- Input Parameters -----| //
momentum_group = "Momentum Indicators"
trend_group = "Trend Indicators"
volume_group = "Volume Indicators"
volatility_group = "Volatility Indicators"
oscillator_group = "Oscillator Indicators"
display_group = "Display Settings"
// Common lengths
length_14 = input.int(14, "Standard Length (14)", minval=1, maxval=100, group=momentum_group)
length_20 = input.int(20, "Medium Length (20)", minval=1, maxval=200, group=trend_group)
length_50 = input.int(50, "Long Length (50)", minval=1, maxval=200, group=trend_group)
// Display options
show_table = input.bool(true, "Show Values Table", group=display_group)
table_size = input.string("Small", "Table Size", options= , group=display_group)
// |----- MOMENTUM INDICATORS (15 indicators) -----| //
// 1. RSI (Relative Strength Index)
rsi_14 = ta.rsi(close, length_14)
rsi_centered = rsi_14 - 50
// 2. Stochastic Oscillator
stoch_k = ta.stoch(close, high, low, length_14)
stoch_d = ta.sma(stoch_k, 3)
stoch_centered = stoch_k - 50
// 3. Williams %R
williams_r = ta.stoch(close, high, low, length_14) - 100
// 4. MACD (Moving Average Convergence Divergence)
= ta.macd(close, 12, 26, 9)
// 5. Momentum (Rate of Change)
momentum = ta.mom(close, length_14)
momentum_pct = (momentum / close ) * 100
// 6. Rate of Change (ROC)
roc = ta.roc(close, length_14)
// 7. Commodity Channel Index (CCI)
cci = ta.cci(close, length_20)
// 8. Money Flow Index (MFI)
mfi = ta.mfi(close, length_14)
mfi_centered = mfi - 50
// 9. Awesome Oscillator (AO)
ao = ta.sma(hl2, 5) - ta.sma(hl2, 34)
// 10. Accelerator Oscillator (AC)
ac = ao - ta.sma(ao, 5)
// 11. Chande Momentum Oscillator (CMO)
cmo = ta.cmo(close, length_14)
// 12. Detrended Price Oscillator (DPO)
dpo = close - ta.sma(close, length_20)
// 13. Price Oscillator (PPO)
ppo = ta.sma(close, 12) - ta.sma(close, 26)
ppo_pct = (ppo / ta.sma(close, 26)) * 100
// 14. TRIX
trix_ema1 = ta.ema(close, length_14)
trix_ema2 = ta.ema(trix_ema1, length_14)
trix_ema3 = ta.ema(trix_ema2, length_14)
trix = ta.roc(trix_ema3, 1) * 10000
// 15. Klinger Oscillator
klinger = ta.ema(volume * (high + low + close) / 3, 34) - ta.ema(volume * (high + low + close) / 3, 55)
// 16. Fisher Transform
fisher_hl2 = 0.5 * (hl2 - ta.lowest(hl2, 10)) / (ta.highest(hl2, 10) - ta.lowest(hl2, 10)) - 0.25
fisher = 0.5 * math.log((1 + fisher_hl2) / (1 - fisher_hl2))
// 17. Stochastic RSI
stoch_rsi = ta.stoch(rsi_14, rsi_14, rsi_14, length_14)
stoch_rsi_centered = stoch_rsi - 50
// 18. Relative Vigor Index (RVI)
rvi_num = ta.swma(close - open)
rvi_den = ta.swma(high - low)
rvi = rvi_den != 0 ? rvi_num / rvi_den : 0
// 19. Balance of Power (BOP)
bop = (close - open) / (high - low)
// |----- TREND INDICATORS (10 indicators) -----| //
// 20. Simple Moving Average Momentum
sma_20 = ta.sma(close, length_20)
sma_momentum = ((close - sma_20) / sma_20) * 100
// 21. Exponential Moving Average Momentum
ema_20 = ta.ema(close, length_20)
ema_momentum = ((close - ema_20) / ema_20) * 100
// 22. Parabolic SAR
sar = ta.sar(0.02, 0.02, 0.2)
sar_trend = close > sar ? 1 : -1
// 23. Linear Regression Slope
lr_slope = ta.linreg(close, length_20, 0) - ta.linreg(close, length_20, 1)
// 24. Moving Average Convergence (MAC)
mac = ta.sma(close, 10) - ta.sma(close, 30)
// 25. Trend Intensity Index (TII)
tii_sum = 0.0
for i = 1 to length_20
tii_sum += close > close ? 1 : 0
tii = (tii_sum / length_20) * 100
// 26. Ichimoku Cloud Components
ichimoku_tenkan = (ta.highest(high, 9) + ta.lowest(low, 9)) / 2
ichimoku_kijun = (ta.highest(high, 26) + ta.lowest(low, 26)) / 2
ichimoku_signal = ichimoku_tenkan > ichimoku_kijun ? 1 : -1
// 27. MESA Adaptive Moving Average (MAMA)
mama_alpha = 2.0 / (length_20 + 1)
mama = ta.ema(close, length_20)
mama_momentum = ((close - mama) / mama) * 100
// 28. Zero Lag Exponential Moving Average (ZLEMA)
zlema_lag = math.round((length_20 - 1) / 2)
zlema_data = close + (close - close )
zlema = ta.ema(zlema_data, length_20)
zlema_momentum = ((close - zlema) / zlema) * 100
// |----- VOLUME INDICATORS (6 indicators) -----| //
// 29. On-Balance Volume (OBV)
obv = ta.obv
// 30. Volume Rate of Change (VROC)
vroc = ta.roc(volume, length_14)
// 31. Price Volume Trend (PVT)
pvt = ta.pvt
// 32. Negative Volume Index (NVI)
nvi = 0.0
nvi := volume < volume ? nvi + ((close - close ) / close ) * nvi : nvi
// 33. Positive Volume Index (PVI)
pvi = 0.0
pvi := volume > volume ? pvi + ((close - close ) / close ) * pvi : pvi
// 34. Volume Oscillator
vol_osc = ta.sma(volume, 5) - ta.sma(volume, 10)
// 35. Ease of Movement (EOM)
eom_distance = high - low
eom_box_height = volume / 1000000
eom = eom_box_height != 0 ? eom_distance / eom_box_height : 0
eom_sma = ta.sma(eom, length_14)
// 36. Force Index
force_index = volume * (close - close )
force_index_sma = ta.sma(force_index, length_14)
// |----- VOLATILITY INDICATORS (10 indicators) -----| //
// 37. Average True Range (ATR)
atr = ta.atr(length_14)
atr_pct = (atr / close) * 100
// 38. Bollinger Bands Position
bb_basis = ta.sma(close, length_20)
bb_dev = 2.0 * ta.stdev(close, length_20)
bb_upper = bb_basis + bb_dev
bb_lower = bb_basis - bb_dev
bb_position = bb_dev != 0 ? (close - bb_basis) / bb_dev : 0
bb_width = bb_dev != 0 ? (bb_upper - bb_lower) / bb_basis * 100 : 0
// 39. Keltner Channels Position
kc_basis = ta.ema(close, length_20)
kc_range = ta.ema(ta.tr, length_20)
kc_upper = kc_basis + (2.0 * kc_range)
kc_lower = kc_basis - (2.0 * kc_range)
kc_position = kc_range != 0 ? (close - kc_basis) / kc_range : 0
// 40. Donchian Channels Position
dc_upper = ta.highest(high, length_20)
dc_lower = ta.lowest(low, length_20)
dc_basis = (dc_upper + dc_lower) / 2
dc_position = (dc_upper - dc_lower) != 0 ? (close - dc_basis) / (dc_upper - dc_lower) : 0
// 41. Standard Deviation
std_dev = ta.stdev(close, length_20)
std_dev_pct = (std_dev / close) * 100
// 42. Relative Volatility Index (RVI)
rvi_up = ta.stdev(close > close ? close : 0, length_14)
rvi_down = ta.stdev(close < close ? close : 0, length_14)
rvi_total = rvi_up + rvi_down
rvi_volatility = rvi_total != 0 ? (rvi_up / rvi_total) * 100 : 50
// 43. Historical Volatility
hv_returns = math.log(close / close )
hv = ta.stdev(hv_returns, length_20) * math.sqrt(252) * 100
// 44. Garman-Klass Volatility
gk_vol = math.log(high/low) * math.log(high/low) - (2*math.log(2)-1) * math.log(close/open) * math.log(close/open)
gk_volatility = math.sqrt(ta.sma(gk_vol, length_20)) * 100
// 45. Parkinson Volatility
park_vol = math.log(high/low) * math.log(high/low)
parkinson = math.sqrt(ta.sma(park_vol, length_20) / (4 * math.log(2))) * 100
// 46. Rogers-Satchell Volatility
rs_vol = math.log(high/close) * math.log(high/open) + math.log(low/close) * math.log(low/open)
rogers_satchell = math.sqrt(ta.sma(rs_vol, length_20)) * 100
// |----- OSCILLATOR INDICATORS (5 indicators) -----| //
// 47. Elder Ray Index
elder_bull = high - ta.ema(close, 13)
elder_bear = low - ta.ema(close, 13)
elder_power = elder_bull + elder_bear
// 48. Schaff Trend Cycle (STC)
stc_macd = ta.ema(close, 23) - ta.ema(close, 50)
stc_k = ta.stoch(stc_macd, stc_macd, stc_macd, 10)
stc_d = ta.ema(stc_k, 3)
stc = ta.stoch(stc_d, stc_d, stc_d, 10)
// 49. Coppock Curve
coppock_roc1 = ta.roc(close, 14)
coppock_roc2 = ta.roc(close, 11)
coppock = ta.wma(coppock_roc1 + coppock_roc2, 10)
// 50. Know Sure Thing (KST)
kst_roc1 = ta.roc(close, 10)
kst_roc2 = ta.roc(close, 15)
kst_roc3 = ta.roc(close, 20)
kst_roc4 = ta.roc(close, 30)
kst = ta.sma(kst_roc1, 10) + 2*ta.sma(kst_roc2, 10) + 3*ta.sma(kst_roc3, 10) + 4*ta.sma(kst_roc4, 15)
// 51. Percentage Price Oscillator (PPO)
ppo_line = ((ta.ema(close, 12) - ta.ema(close, 26)) / ta.ema(close, 26)) * 100
ppo_signal = ta.ema(ppo_line, 9)
ppo_histogram = ppo_line - ppo_signal
// |----- PLOT MAIN INDICATORS -----| //
// Plot key momentum indicators
plot(rsi_centered, title="01_RSI_Centered", color=color.purple, linewidth=1)
plot(stoch_centered, title="02_Stoch_Centered", color=color.blue, linewidth=1)
plot(williams_r, title="03_Williams_R", color=color.red, linewidth=1)
plot(macd_histogram, title="04_MACD_Histogram", color=color.orange, linewidth=1)
plot(cci, title="05_CCI", color=color.green, linewidth=1)
// Plot trend indicators
plot(sma_momentum, title="06_SMA_Momentum", color=color.navy, linewidth=1)
plot(ema_momentum, title="07_EMA_Momentum", color=color.maroon, linewidth=1)
plot(sar_trend, title="08_SAR_Trend", color=color.teal, linewidth=1)
plot(lr_slope, title="09_LR_Slope", color=color.lime, linewidth=1)
plot(mac, title="10_MAC", color=color.fuchsia, linewidth=1)
// Plot volatility indicators
plot(atr_pct, title="11_ATR_Pct", color=color.yellow, linewidth=1)
plot(bb_position, title="12_BB_Position", color=color.aqua, linewidth=1)
plot(kc_position, title="13_KC_Position", color=color.olive, linewidth=1)
plot(std_dev_pct, title="14_StdDev_Pct", color=color.silver, linewidth=1)
plot(bb_width, title="15_BB_Width", color=color.gray, linewidth=1)
// Plot volume indicators
plot(vroc, title="16_VROC", color=color.blue, linewidth=1)
plot(eom_sma, title="17_EOM", color=color.red, linewidth=1)
plot(vol_osc, title="18_Vol_Osc", color=color.green, linewidth=1)
plot(force_index_sma, title="19_Force_Index", color=color.orange, linewidth=1)
plot(obv, title="20_OBV", color=color.purple, linewidth=1)
// Plot additional oscillators
plot(ao, title="21_Awesome_Osc", color=color.navy, linewidth=1)
plot(cmo, title="22_CMO", color=color.maroon, linewidth=1)
plot(dpo, title="23_DPO", color=color.teal, linewidth=1)
plot(trix, title="24_TRIX", color=color.lime, linewidth=1)
plot(fisher, title="25_Fisher", color=color.fuchsia, linewidth=1)
// Plot more momentum indicators
plot(mfi_centered, title="26_MFI_Centered", color=color.yellow, linewidth=1)
plot(ac, title="27_AC", color=color.aqua, linewidth=1)
plot(ppo_pct, title="28_PPO_Pct", color=color.olive, linewidth=1)
plot(stoch_rsi_centered, title="29_StochRSI_Centered", color=color.silver, linewidth=1)
plot(klinger, title="30_Klinger", color=color.gray, linewidth=1)
// Plot trend continuation
plot(tii, title="31_TII", color=color.blue, linewidth=1)
plot(ichimoku_signal, title="32_Ichimoku_Signal", color=color.red, linewidth=1)
plot(mama_momentum, title="33_MAMA_Momentum", color=color.green, linewidth=1)
plot(zlema_momentum, title="34_ZLEMA_Momentum", color=color.orange, linewidth=1)
plot(bop, title="35_BOP", color=color.purple, linewidth=1)
// Plot volume continuation
plot(nvi, title="36_NVI", color=color.navy, linewidth=1)
plot(pvi, title="37_PVI", color=color.maroon, linewidth=1)
plot(momentum_pct, title="38_Momentum_Pct", color=color.teal, linewidth=1)
plot(roc, title="39_ROC", color=color.lime, linewidth=1)
plot(rvi, title="40_RVI", color=color.fuchsia, linewidth=1)
// Plot volatility continuation
plot(dc_position, title="41_DC_Position", color=color.yellow, linewidth=1)
plot(rvi_volatility, title="42_RVI_Volatility", color=color.aqua, linewidth=1)
plot(hv, title="43_Historical_Vol", color=color.olive, linewidth=1)
plot(gk_volatility, title="44_GK_Volatility", color=color.silver, linewidth=1)
plot(parkinson, title="45_Parkinson_Vol", color=color.gray, linewidth=1)
// Plot final oscillators
plot(rogers_satchell, title="46_RS_Volatility", color=color.blue, linewidth=1)
plot(elder_power, title="47_Elder_Power", color=color.red, linewidth=1)
plot(stc, title="48_STC", color=color.green, linewidth=1)
plot(coppock, title="49_Coppock", color=color.orange, linewidth=1)
plot(kst, title="50_KST", color=color.purple, linewidth=1)
// Plot final indicators
plot(ppo_histogram, title="51_PPO_Histogram", color=color.navy, linewidth=1)
plot(pvt, title="52_PVT", color=color.maroon, linewidth=1)
// |----- Reference Lines -----| //
hline(0, "Zero Line", color=color.gray, linestyle=hline.style_dashed, linewidth=1)
hline(50, "Midline", color=color.gray, linestyle=hline.style_dotted, linewidth=1)
hline(-50, "Lower Midline", color=color.gray, linestyle=hline.style_dotted, linewidth=1)
hline(25, "Upper Threshold", color=color.gray, linestyle=hline.style_dotted, linewidth=1)
hline(-25, "Lower Threshold", color=color.gray, linestyle=hline.style_dotted, linewidth=1)
// |----- Enhanced Information Table -----| //
if show_table and barstate.islast
table_position = position.top_right
table_text_size = table_size == "Tiny" ? size.tiny : table_size == "Small" ? size.small : size.normal
var table info_table = table.new(table_position, 3, 18, bgcolor=color.new(color.white, 85), border_width=1, border_color=color.gray)
// Headers
table.cell(info_table, 0, 0, 'Category', text_color=color.black, text_size=table_text_size, bgcolor=color.new(color.blue, 70))
table.cell(info_table, 1, 0, 'Indicator', text_color=color.black, text_size=table_text_size, bgcolor=color.new(color.blue, 70))
table.cell(info_table, 2, 0, 'Value', text_color=color.black, text_size=table_text_size, bgcolor=color.new(color.blue, 70))
// Key Momentum Indicators
table.cell(info_table, 0, 1, 'MOMENTUM', text_color=color.purple, text_size=table_text_size, bgcolor=color.new(color.purple, 90))
table.cell(info_table, 1, 1, 'RSI Centered', text_color=color.purple, text_size=table_text_size)
table.cell(info_table, 2, 1, str.tostring(rsi_centered, '0.00'), text_color=color.purple, text_size=table_text_size)
table.cell(info_table, 0, 2, '', text_color=color.blue, text_size=table_text_size)
table.cell(info_table, 1, 2, 'Stoch Centered', text_color=color.blue, text_size=table_text_size)
table.cell(info_table, 2, 2, str.tostring(stoch_centered, '0.00'), text_color=color.blue, text_size=table_text_size)
table.cell(info_table, 0, 3, '', text_color=color.red, text_size=table_text_size)
table.cell(info_table, 1, 3, 'Williams %R', text_color=color.red, text_size=table_text_size)
table.cell(info_table, 2, 3, str.tostring(williams_r, '0.00'), text_color=color.red, text_size=table_text_size)
table.cell(info_table, 0, 4, '', text_color=color.orange, text_size=table_text_size)
table.cell(info_table, 1, 4, 'MACD Histogram', text_color=color.orange, text_size=table_text_size)
table.cell(info_table, 2, 4, str.tostring(macd_histogram, '0.000'), text_color=color.orange, text_size=table_text_size)
table.cell(info_table, 0, 5, '', text_color=color.green, text_size=table_text_size)
table.cell(info_table, 1, 5, 'CCI', text_color=color.green, text_size=table_text_size)
table.cell(info_table, 2, 5, str.tostring(cci, '0.00'), text_color=color.green, text_size=table_text_size)
// Key Trend Indicators
table.cell(info_table, 0, 6, 'TREND', text_color=color.navy, text_size=table_text_size, bgcolor=color.new(color.navy, 90))
table.cell(info_table, 1, 6, 'SMA Momentum %', text_color=color.navy, text_size=table_text_size)
table.cell(info_table, 2, 6, str.tostring(sma_momentum, '0.00'), text_color=color.navy, text_size=table_text_size)
table.cell(info_table, 0, 7, '', text_color=color.maroon, text_size=table_text_size)
table.cell(info_table, 1, 7, 'EMA Momentum %', text_color=color.maroon, text_size=table_text_size)
table.cell(info_table, 2, 7, str.tostring(ema_momentum, '0.00'), text_color=color.maroon, text_size=table_text_size)
table.cell(info_table, 0, 8, '', text_color=color.teal, text_size=table_text_size)
table.cell(info_table, 1, 8, 'SAR Trend', text_color=color.teal, text_size=table_text_size)
table.cell(info_table, 2, 8, str.tostring(sar_trend, '0'), text_color=color.teal, text_size=table_text_size)
table.cell(info_table, 0, 9, '', text_color=color.lime, text_size=table_text_size)
table.cell(info_table, 1, 9, 'Linear Regression', text_color=color.lime, text_size=table_text_size)
table.cell(info_table, 2, 9, str.tostring(lr_slope, '0.000'), text_color=color.lime, text_size=table_text_size)
// Key Volatility Indicators
table.cell(info_table, 0, 10, 'VOLATILITY', text_color=color.yellow, text_size=table_text_size, bgcolor=color.new(color.yellow, 90))
table.cell(info_table, 1, 10, 'ATR %', text_color=color.yellow, text_size=table_text_size)
table.cell(info_table, 2, 10, str.tostring(atr_pct, '0.00'), text_color=color.yellow, text_size=table_text_size)
table.cell(info_table, 0, 11, '', text_color=color.aqua, text_size=table_text_size)
table.cell(info_table, 1, 11, 'BB Position', text_color=color.aqua, text_size=table_text_size)
table.cell(info_table, 2, 11, str.tostring(bb_position, '0.00'), text_color=color.aqua, text_size=table_text_size)
table.cell(info_table, 0, 12, '', text_color=color.olive, text_size=table_text_size)
table.cell(info_table, 1, 12, 'KC Position', text_color=color.olive, text_size=table_text_size)
table.cell(info_table, 2, 12, str.tostring(kc_position, '0.00'), text_color=color.olive, text_size=table_text_size)
// Key Volume Indicators
table.cell(info_table, 0, 13, 'VOLUME', text_color=color.blue, text_size=table_text_size, bgcolor=color.new(color.blue, 90))
table.cell(info_table, 1, 13, 'Volume ROC', text_color=color.blue, text_size=table_text_size)
table.cell(info_table, 2, 13, str.tostring(vroc, '0.00'), text_color=color.blue, text_size=table_text_size)
table.cell(info_table, 0, 14, '', text_color=color.red, text_size=table_text_size)
table.cell(info_table, 1, 14, 'EOM', text_color=color.red, text_size=table_text_size)
table.cell(info_table, 2, 14, str.tostring(eom_sma, '0.000'), text_color=color.red, text_size=table_text_size)
// Key Oscillators
table.cell(info_table, 0, 15, 'OSCILLATORS', text_color=color.purple, text_size=table_text_size, bgcolor=color.new(color.purple, 90))
table.cell(info_table, 1, 15, 'Awesome Osc', text_color=color.blue, text_size=table_text_size)
table.cell(info_table, 2, 15, str.tostring(ao, '0.000'), text_color=color.blue, text_size=table_text_size)
table.cell(info_table, 0, 16, '', text_color=color.red, text_size=table_text_size)
table.cell(info_table, 1, 16, 'Fisher Transform', text_color=color.red, text_size=table_text_size)
table.cell(info_table, 2, 16, str.tostring(fisher, '0.000'), text_color=color.red, text_size=table_text_size)
// Summary Statistics
table.cell(info_table, 0, 17, 'SUMMARY', text_color=color.black, text_size=table_text_size, bgcolor=color.new(color.gray, 70))
table.cell(info_table, 1, 17, 'Total Indicators: 52', text_color=color.black, text_size=table_text_size)
regime_color = rsi_centered > 10 ? color.green : rsi_centered < -10 ? color.red : color.gray
regime_text = rsi_centered > 10 ? "BULLISH" : rsi_centered < -10 ? "BEARISH" : "NEUTRAL"
table.cell(info_table, 2, 17, regime_text, text_color=regime_color, text_size=table_text_size)
This makes it the perfect “indicator backbone” for quantitative and systematic traders who want to prototype, combine, and test new regime detection models—especially in combination with the Markov Chain indicator.
How to use this script with the Markov Chain for research and backtesting:
Add the Enhanced Indicator Export to your chart.
Every calculated indicator is available as an individual data stream.
Connect the indicator(s) you want as custom input(s) to the Markov Chain’s “Custom Indicators” option.
In the Markov Chain indicator’s settings, turn ON the custom indicator mode.
For each of the three custom indicator inputs, select the exported plot from the Enhanced Export script—the menu lists all 45+ signals by name.
This creates a powerful, modular regime-detection engine where you can mix-and-match momentum, trend, volume, or custom combinations for advanced filtering.
Backtest regime logic directly.
Once you’ve connected your chosen indicators, the Markov Chain script performs regime detection (Bull/Neutral/Bear) based on your selected features—not just price returns.
The regime detection is robust, automatically normalized (using Z-score), and outputs bias (1, -1, 0) for plug-and-play integration.
Export the regime bias for programmatic use.
As described above, use input.source() in your Pine Script strategy or system and link the bias output.
You can now filter signals, control trade direction/size, or design pairs-trading that respect true, indicator-driven market regimes.
With this framework, you’re not limited to static or simplistic regime filters. You can rigorously define, test, and refine what “market regime” means for your strategies—using the technical features that matter most to you.
Optimize your signal generation by backtesting across a universe of meaningful indicator blends.
Enhance risk management with objective, real-time regime boundaries.
Accelerate your research: iterate quickly, swap indicator components, and see results with minimal code changes.
Automate multi-asset or pairs-trading by integrating regime context directly into strategy logic.
Add both scripts to your chart, connect your preferred features, and start investigating your best regime-based trades—entirely within the TradingView ecosystem.
References & Further Reading
Ang, A., & Bekaert, G. (2002). “Regime Switches in Interest Rates.” Journal of Business & Economic Statistics, 20(2), 163–182.
Hamilton, J. D. (1989). “A New Approach to the Economic Analysis of Nonstationary Time Series and the Business Cycle.” Econometrica, 57(2), 357–384.
Markov, A. A. (1906). "Extension of the Limit Theorems of Probability Theory to a Sum of Variables Connected in a Chain." The Notes of the Imperial Academy of Sciences of St. Petersburg.
Guidolin, M., & Timmermann, A. (2007). “Asset Allocation under Multivariate Regime Switching.” Journal of Economic Dynamics and Control, 31(11), 3503–3544.
Murphy, J. J. (1999). Technical Analysis of the Financial Markets. New York Institute of Finance.
Brock, W., Lakonishok, J., & LeBaron, B. (1992). “Simple Technical Trading Rules and the Stochastic Properties of Stock Returns.” Journal of Finance, 47(5), 1731–1764.
Zucchini, W., MacDonald, I. L., & Langrock, R. (2017). Hidden Markov Models for Time Series: An Introduction Using R (2nd ed.). Chapman and Hall/CRC.
On Quantitative Finance and Markov Models:
Lo, A. W., & Hasanhodzic, J. (2009). The Heretics of Finance: Conversations with Leading Practitioners of Technical Analysis. Bloomberg Press.
Patterson, S. (2016). The Man Who Solved the Market: How Jim Simons Launched the Quant Revolution. Penguin Press.
TradingView Pine Script Documentation: www.tradingview.com
TradingView Blog: “Use an Input From Another Indicator With Your Strategy” www.tradingview.com
GeeksforGeeks: “What is the Difference Between Markov Chains and Hidden Markov Models?” www.geeksforgeeks.org
What makes this indicator original and unique?
- On‑chart, real‑time Markov. The chain is drawn directly on your chart. You see the current regime, its tendency to stay (self‑loop), and the usual next step (arrows) as bars confirm.
- Source‑agnostic by design. The engine runs on any series you select via input.source() — price, your own oscillator, a composite score, anything you compute in the script.
- Automatic normalization + regime mapping. Different inputs live on different scales. The script standardizes your chosen source and maps it into clear regimes (e.g., Bull / Bear / Neutral) without you micromanaging thresholds each time.
- Rolling, bar‑by‑bar learning. Transition tendencies are computed from a rolling window of confirmed bars. What you see is exactly what the market did in that window.
- Fast experimentation. Switch the source, adjust the window, and the Markov view updates instantly. It’s a rapid way to test ideas and feel regime persistence/switch behavior.
Integrate your own signals (using input.source())
- In settings, choose the Source . This is powered by input.source() .
- Feed it price, an indicator you compute inside the script, or a custom composite series.
- The script will automatically normalize that series and process it through the Markov engine, mapping it to regimes and updating the on‑chart spheres/arrows in real time.
Credits:
Deep gratitude to @RicardoSantos for both the foundational Markov chain processing engine and inspiring open-source contributions, which made advanced probabilistic market modeling accessible to the TradingView community.
Special thanks to @Alien_Algorithms for the innovative and visually stunning 3D sphere logic that powers the indicator’s animated, regime-based visualization.
Disclaimer
This tool summarizes recent behavior. It is not financial advice and not a guarantee of future results.






















